520
צפיות
צפיות
36
תשובות
תשובות
JS ו/או DHTML
אני קורא לפונקציה דרך ה-onClick (ברמת ה-JS)
object.onclick = function emo(){
stateMent;
}
השאלה שלי היא איך אני שולח פרמטרים לפונקציה כי בעצם בקוד אני גם מגדיר את הפונקציה וגם קורא לה בו זמנית מישהו ?
אני קורא לפונקציה דרך ה-onClick (ברמת ה-JS)
object.onclick = function emo(){
stateMent;
}
השאלה שלי היא איך אני שולח פרמטרים לפונקציה כי בעצם בקוד אני גם מגדיר את הפונקציה וגם קורא לה בו זמנית מישהו ?
36 תשובות
מישהו ?
פליז….
שאלה אחרת
";
";
יש לי את הפונקצייה הבאה
function EmoBar(id){
var EmoDiv = document.getElementById(id);
var oMessageBox = document.getElementById("message");
var oEmoImgArr = new Array(11);
var emoArr = new Array(11);
emoArr[0] = "
emoArr[1] = "
emoArr[2] = "|+|";
emoArr[3] = "|-|";
emoArr[4] = ";-)";
emoArr[5] = ";-(";
emoArr[6] = "$-)";
emoArr[7] = "|!@|";
emoArr[8] = ";-|";
emoArr[9] = "|<*>|";
emoArr[10] = "|heart|";
for (i=0;i<11;i++){
oEmoImgArr[i] = document.createElement("img")
oEmoImgArr[i].src = "smile/" + i + ".gif";
oEmoImgArr[i].className = "emoBar";
oEmoImgArr[i].onclick = function Emo(){
oMessageBox.focus();
var oRange = document.selection.createRange();
if (oRange.text!=null)
oRange.text += emoArr[i];
}
EmoDiv.appendChild(oEmoImgArr[i]);
}
}
הפונקצייה בעצם מקבלת כפרמטר ID של DIV מסוים ובתוכה יש סמיילים שאני מציג בלולאת JS. בניתי בפונקצייה גם מערך של סימון כל סמיילי עכשיו הרעיון הוא שבכל לחיצה על התמונה שנוצרת יופי ב-textArea הסימון בהתאם למס' המופיע ב-i (משתנה שרץ בלולאה). הבעיה היא שאם אני מפעיל את הפונקציה ולוחץ על תמונה מופיעה לי ב-textArea את המילה undefined אבל אם אני שם במקום ה-iמס' מסוים נגיד 1 זה כותב את הסימון שלו על פי המערך כמו שזה אמור להיות למישהו יש פיתרון ?
ענו לך בתפוז.
לא הגדרת את i
ה-i
הוא המשתנה שאני מריץ בלולאה
for (i=0;i<11;i++){
נכון, והוא לא מוגדר
הגדרתי אותו ….
";
";
";
";
עכשיו בשני דרכים (בנפרד) פעם אחת בתוך הלולאה
function EmoBar(id){
var EmoDiv = document.getElementById(id);
var oMessageBox = document.getElementById("message");
var oEmoImgArr = new Array(11);
var emoArr = new Array(11);
emoArr[0] = "
emoArr[1] = "
emoArr[2] = "|+|";
emoArr[3] = "|-|";
emoArr[4] = ";-)";
emoArr[5] = ";-(";
emoArr[6] = "$-)";
emoArr[7] = "|!@|";
emoArr[8] = ";-|";
emoArr[9] = "|<*>|";
emoArr[10] = "|heart|";
for var (i=0;i<11;i++){
oEmoImgArr[i] = document.createElement("img")
oEmoImgArr[i].src = "smile/" + i + ".gif";
oEmoImgArr[i].className = "emoBar";
oEmoImgArr[i].onclick = function Emo(){
oMessageBox.focus();
var oRange = document.selection.createRange();
if (oRange.text!=null)
oRange.text += emoArr[i];
}
EmoDiv.appendChild(oEmoImgArr[i]);
}
}
ופעם אחת מחוץ ללולאה
function EmoBar(id){
var EmoDiv = document.getElementById(id);
var oMessageBox = document.getElementById("message");
var oEmoImgArr = new Array(11);
var emoArr = new Array(11);
var i;
emoArr[0] = "
emoArr[1] = "
emoArr[2] = "|+|";
emoArr[3] = "|-|";
emoArr[4] = ";-)";
emoArr[5] = ";-(";
emoArr[6] = "$-)";
emoArr[7] = "|!@|";
emoArr[8] = ";-|";
emoArr[9] = "|<*>|";
emoArr[10] = "|heart|";
for (i=0;i<11;i++){
oEmoImgArr[i] = document.createElement("img")
oEmoImgArr[i].src = "smile/" + i + ".gif";
oEmoImgArr[i].className = "emoBar";
oEmoImgArr[i].onclick = function Emo(){
oMessageBox.focus();
var oRange = document.selection.createRange();
if (oRange.text!=null)
oRange.text += emoArr[i];
}
EmoDiv.appendChild(oEmoImgArr[i]);
}
}
וזה עדיין כותב undefined
תעלה לפה קובץ Htm
כדי שנוכל לבדוק
הנה…
הקובץ המצורף
טעות הנה
זה הקובץ
מצטער על איך שהקובץ נראה זה בגלל שאני עובד עם קובץ CSS חיצוני
כי בתוך הפונק' הפנימית
i כבר לא קיים.
רצ"ב קובץ. שים לב שזה יעבוד רק ב-IE.
???
מה זה רצ"ב (מוזר אני כבר כמה זמן כאן ואני לא יודע)???
ואיך אני יכול להפוך את הקוד כדי שיעבוד גם בנטסקייפ או במוזילה ?
ועוד משהו
מה זה בקוד שתיקנת לי הדבר הזה :
array[i].nNam = i
מה זה ה-nNam הזה ?
זה מאפיין מותאם אישית
בדיוק בגלל זה זה יעבוד רק ב-IE.
אם תרצה שיעבוד גם במוזילת ושו"ת – תצטרך לבנות את הפונק' והכפתורים שלך בצורה שונה, ולשלוח לה את האינדקס במערך שאתה רוצה להציג.
טוב…
אני אנסה לעשות זאת. בעקרון אני רוצה למצוא דרך טובה ב-JS ולא לכתוב HTML משתי סיבות
– אני רוצה להתקדם ב-JS
– אני רוצה להפחית את קוד ה-HTML
שיניתי את הפונקציה…
וזה נותן שגיאה הנה הפונקציה
function EmoBar2(Events,id,smileNum){ //remark – Events = Load OR Click
var strImg, i;
i = parseInt(0);
strImg = new String();
switch (Events){
case "Load":
var EmoBox = document.getElementById(id);
for (i=0;i<=10;i++){
strImg += "<img src='smile/" + i + ".gif' border='0' onClick=EmoBar('Click','message'," + i
+ ") class=’emoBar' /> ";
}
EmoBox.innerHTML = strImg;
break;
case "Click":
var oMessageBox = document.getElementById(id);
oMessageBox.focus();
var oRange = document.selection.createRange();
if (oRange.text!=null)
oRange.text += emoArr[parseInt(smileNum)];
break;
}
}
הפונקציה בעצם מקבלת שלושה פרמטרים
Events שאני מקצה לו רק Click ו-Load
ID – שמקבל את ה-ID של תיבת הסמיילים או של ה-textArea
smileNum – מס' או ערך ריק
בפונקציה אני מבצע התניית SWITCH CASE על הפרמטר Events
Load – מציג את הסמיילים בתוך תיבת ה-סמיילים (div)
Click – מכניס ל-textArea את המחרוזת המתאימה לפי המערך והפרמטר smileNum
החלק של Load עובד מצוין אבל החלק של Click נותן לי את השגיאה הבאה
Erroe: 'null' is null or not an object
תודה רבה לכל העוזרים.
טעות קלה…
הרצתי את ה-debuger של ה-IE וזה היה בפונקציה אחרת בכל מקרה עדיין יש בעייה זה מחזיר לי את השגיאה הבאה
object Expected
אני יודע מה זה אומר אבל לא הצלחתי למצוא את זה בקוד שלי
אתם יכולים לראות בקובץ המצורף.
הסתדרתי
הגדרתי שבלחיצה על התמונה זה יעבור לפונקציה לא קיימת
תודה לכל העוזרים!!!
שאלה חדשה
","
",0);
עשיתי את הקוד הבא (עם regExp)
function replaceToSmile(strMessage,strReplace,id){
var sStr = new String(strMessage);
var rExp = new RegExp("/" + strReplace,"gi")
var strImg = new String("<img src='smile/" + id + ".gif' border='0' />")
return sStr.replace(rExp,strImg);
}
var Img = new replaceToSmile("nir the king
document.write(Img);
וכשהפעלתי הופיעה לי השגיאה
Syntax erroe in regular expression
איך אני מתקן את הקוד כי אני דיי חדש בנושא
ככה
לא הבנתי משהו קטן
",":-\)",0);
אם הסלאש () מציין את שהתו שבא אחריו כתו בפני עצמו אז למה צריך לעשות שני סלאשים
var Img = replaceToSmile("nir the king
תודה על העזרה ניר
אפילו ב-MSDN
ב-MSDN כתוב שצמד התווים הבא יהווה את ה-( כסימן מיוחד
(
ציטוט
Marks the next character as a special character, a literal, a backreference, or an octal escape. For example, 'n' matches the character "n". 'n' matches a newline character. The sequence '\' matches "" and "(" matches "(".
ועוד שאלה ב-regExp
שתירגמתי את המשמעות של הסימון r אז קיבלתי את שני תרגומים והנה הם :::
curriage return –
(מחשבים) מקש שמחזיר את הסמן לתחילת השורה;
(מחשבים) מקש שזהה למקש ה- Enter;
איזה מבין הפירושים מהווה את הסימון
r
???
שניהם, בערך…
מקש ה Enter מורכב למעשה משני תווים,
Curriage Return ו Line Feed,
כאשר Line Feed מוריד את הסמן שורה, ו Curriage Return מחזיר אותו
לתחילת השורה.
בגלל שזה בתוך מחרוזת
יש צורך גם להכפיל את ה- כדי שהוא ידע להתייחס לזה בתור escape ולא בתור התו עצמו.
???
אסקייפ = יוניקוד ???
escape sequences
בעייה מוזרה מאוד
אני בניתי טופס שנשלח לעמוד ASP מסוים בשיטה Post
בעמוד ה-ASP ביצעתי בדיקת IF (הקוד כתוב ב-JS)
if (Request.Form("subject").length<=0){
Response.Write("<center>")
Response.Write("בבקשה כתוב נושא")
Response.Write("<br><a href='javascript:history.back()'>חזור</a>")
Response.Write("</center>")
Response.End()
}
שלחתי את הטופסנ ללא שום נתון. כל השדות ריקים וזה לא החזיר לי שום טקסט
שצריך להיות מוחזר ע"י הבדיקה וגם אין שום הודעת שגיאה! אז מה לא נכון בקוד שלי <???
הסתדרתי
שכחתי לכתוב את הסוגריים שמעבירות את המאפיינים והשיטות לאובייקט
עוד שאלה
איך אני עושה רפלייס לירידת שורה ב-JS ??? (לא ב-VBS)
אמממ,
תחליף את n ב <br>
שאלה לגבי הפורום
איך אתם שומרים על רווח קבוע ברקורסיה יענו יש דבר כזה _אל תתייחסו לסלאשים זה רק בשביל שזה יעבוד)
–
–
\-
\-
\\-
\\-
\\\-
כי אני כשאני עושה את ה-padding זה בסוף נראה כמו מגלשה ולא כמו אלכסום ישר.
ועוד שאלה :
למה כשאני מכניס הודעה (אצלי) אז זה חותך אותה ולא מראה את כולה ?
האם זה יכול להיות בגלל ה-JS ?
אין סיבה שזה יהיה מגלשה
ראה קובץ מצורף.
את השאלה השניה לא הבנתי.
הא הבנתי והסבר לשני
אני פשוט סגרתי את ה-div של כל הודעה ועשיתי כך טוב מובן.
וההסבר
נגיד אני כותב: חחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחח
אז זה מראה רק כך :
חחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחח
למרות שמה שאני כתבתי נמצא ב-DB כמו שהוא אבל בתצוגה זה חוצה את זה
וזה ממש חותך לי את כל ההודעה
תשלח לפונקציה משתנה
שייציין את עומק הרקורסיה.
עדיין לא הבנתי…