האפ יש דרך… האם יש דרך לעשות דרך אירוע onClick ברמת ה-JS בתוך createElement ? יענו לעשות כך : var oTag = document.createElement("img") oTag.onclick = document.write("this is img") documetn.body.appendChild(oTag)
הקטע הוא שזה לא עובד והפעולות שרציתי לעשות ב-onclick התבצעו ישר עם הפעלת הפונקציה (שאני בניתי) מישהו יודע איך לעשות זאת ?
והנה הפונקציה שלי ::: function EmoBar(id){ var EmoDiv = document.getElementById(id); var oEmoImgArr = new Array(11) for (i=0;i<=10;i++){ oEmoImgArr[i] = document.createElement("img") oEmoImgArr[i].src = "smile/" + i + ".gif"; oEmoImgArr[i].style.width = "19px"; oEmoImgArr[i].style.height = "19px"; oEmoImgArr[i].style.backgroundColor = "white"; oEmoImgArr[i].onClick = addTags(":)",") EmoDiv.appendChild(oEmoImgArr[i]); } }
אותו הדבר כמו בתמונה זה נראה וזה הקוד ::: function EmoBar(id){ var EmoDiv = document.getElementById(id); var oMessageBox = document.getElementById("message"); var oEmoImgArr = new Array(11) for (i=0;i<=10;i++){ oEmoImgArr[i] = document.createElement("img") oEmoImgArr[i].src = "smile/" + i + ".gif"; oEmoImgArr[i].style.width = "19px"; oEmoImgArr[i].style.height = "19px"; oEmoImgArr[i].style.backgroundColor = "white"; oEmoImgArr[i].style.cursor = "hand"; oEmoImgArr[i].alt = "שלום"; oEmoImgArr[i].style.paddingLeft = "10px"; oEmoImgArr[i].onclick = function Emo(){ oMessageBox.focus(); var oRange = document.selection.createRange(); if (oRange.text!=null) oRange.text += ""; } EmoDiv.appendChild(oEmoImgArr[i]); } }
סבה"ך הכל הוספתי את השורה הזאת בתוך הלולאה oEmoImgArr[i].style.paddingLeft = "10px";
14 תשובות
אתה יכול לבדוק כל פעם באירוע
onChange אם הdir = rtl ואם כן לשנות ל ltr.
תודה ושאלה נוספת….
עשיתי את הקוד הבא (JS)
function EmoBar(id){
var obj, i, arrEmo, ImgEmo
arrEmo = new Array(12);
arrEmo[0] = "
arrEmo[1] = "
arrEmo[2] = "
arrEmo[3] = "
arrEmo[4] = ";-)"; //קורץ
arrEmo[5] = ";-("; //בוכה
arrEmo[6] = "8-)"; //גזעי
arrEmo[7] = "|סוד|"; // secret – סוד
arrEmo[8] = "$)"; // מיליון דולר
arrEmo[9] = ":-|"; // כועס
arrEmo[10] = "|*|"; // כוכב
arrEmo[11] = ":~)"; // אוהב
obj = document.getElementById(id);
for (i=0;i<arrEmo.length;i++){
ImgEmo += "<br>" + arrEmo[i];
}
obj.innerHTML = ImgEmo;
}
עכשיו הפלט של הסקריפט הזה הוא(אל תתיחסו לתמונות שייתכן ויוצגו כאן ) :
undefined
😎
|סוד|
$)
😐
|*|
:~)
משום מה מוכנס לי לתוך המשתנה ImgEmo המחרוזת underfined אבל זה לא אמור להוציא את המחרוזת הזאת… מישהו יודע איך לבטל את זה?
הסתדרתי
האפ יש דרך…
האם יש דרך לעשות דרך אירוע onClick ברמת ה-JS בתוך createElement ?
יענו לעשות כך :
var oTag = document.createElement("img")
oTag.onclick = document.write("this is img")
documetn.body.appendChild(oTag)
הקטע הוא שזה לא עובד והפעולות שרציתי לעשות ב-onclick התבצעו ישר עם הפעלת הפונקציה (שאני בניתי) מישהו יודע איך לעשות זאת ?
והנה הפונקציה שלי :::
function EmoBar(id){
var EmoDiv = document.getElementById(id);
var oEmoImgArr = new Array(11)
for (i=0;i<=10;i++){
oEmoImgArr[i] = document.createElement("img")
oEmoImgArr[i].src = "smile/" + i + ".gif";
oEmoImgArr[i].style.width = "19px";
oEmoImgArr[i].style.height = "19px";
oEmoImgArr[i].style.backgroundColor = "white";
oEmoImgArr[i].onClick = addTags(":)",")
EmoDiv.appendChild(oEmoImgArr[i]);
}
}
בתודה ניר!!!
יש
<html>
<head>
</head>
<body>
<span id="nir"></div>
<script language="javascript">
var x=document.createElement("img");
x.onclick=function (x,y) {
document.getElementById("nir").innerHTML +="<br><h1>Done</h1>";
}
x.src="a.jpg";
x.style.height="500px";
x.style.width="500px";
x.style.border="solid 1px #FFFFFF";
document.getElementById("nir").appendChild(x);
</script>
</body>
</html>
רק עכשיו שמתי לב שזה חסום
זה לא אמור להיות ככה, וישתנה בהקדם.
בכל מקרה, מה שגורם לזה הוא השימוש ב-direction:rtl ל-textarea במקום dir=rtl.
אבל אוריקס
למה אי אפשר פשוט לקרוא לפונקציה רגילה למה צריך לעשות פונקציה חדשה ?
עוד שאלה
בניתי את הפונקציה והכל עובד אבל מבחינת תצוגה
כל התמונות מופיעות לי צמודות אחת לשנייה והייתי רוצה לרווח ביניהם (JS)
אפשר לראות בתמונה המצורפת
והנה הפונקציה :
";
function EmoBar(id){
var EmoDiv = document.getElementById(id);
var oMessageBox = document.getElementById("message");
var oEmoImgArr = new Array(11)
for (i=0;i<=10;i++){
oEmoImgArr[i] = document.createElement("img")
oEmoImgArr[i].src = "smile/" + i + ".gif";
oEmoImgArr[i].style.width = "19px";
oEmoImgArr[i].style.height = "19px";
oEmoImgArr[i].style.backgroundColor = "white";
oEmoImgArr[i].style.cursor = "hand";
oEmoImgArr[i].style.letterSpacing = "3px"
oEmoImgArr[i].alt = "שלום";
oEmoImgArr[i].onclick = function Emo(){
oMessageBox.focus();
var oRange = document.selection.createRange();
if (oRange.text!=null)
oRange.text += "
}
EmoDiv.appendChild(oEmoImgArr[i]);
}
padding
לא עובד…
זה לא עושה כלום
תגדיר "לא עובד"
מה בדיוק כתבת?
אותו הדבר
";
כמו בתמונה זה נראה וזה הקוד :::
function EmoBar(id){
var EmoDiv = document.getElementById(id);
var oMessageBox = document.getElementById("message");
var oEmoImgArr = new Array(11)
for (i=0;i<=10;i++){
oEmoImgArr[i] = document.createElement("img")
oEmoImgArr[i].src = "smile/" + i + ".gif";
oEmoImgArr[i].style.width = "19px";
oEmoImgArr[i].style.height = "19px";
oEmoImgArr[i].style.backgroundColor = "white";
oEmoImgArr[i].style.cursor = "hand";
oEmoImgArr[i].alt = "שלום";
oEmoImgArr[i].style.paddingLeft = "10px";
oEmoImgArr[i].onclick = function Emo(){
oMessageBox.focus();
var oRange = document.selection.createRange();
if (oRange.text!=null)
oRange.text += "
}
EmoDiv.appendChild(oEmoImgArr[i]);
}
}
סבה"ך הכל הוספתי את השורה הזאת בתוך הלולאה
oEmoImgArr[i].style.paddingLeft = "10px";
הייתי נותן לו את המאפיין בתגית עצמה
ומכין Class מראש.
הסתדרתי
השמשתי ב-margin במקום ב-padding