दोनों एक साथ बहुत-सही उत्तरों की टाई करने के लिए, क्या हुआ आप एक समारोह जहां onclick="return runFunction();"
लिखा है आपको लगता है कि को देखें, तो क्या यह वास्तव में क्या कर रहा है इस तरह जा रहा है inlined है:
var link = document.getElementById("myLink");
link.onclick = function() { runFunction(); };
समस्या देखें?
मेरा runFunction
किसी भी घटना वस्तु को पारित किए बिना बुलाया जा रहा है। ... जिसका अर्थ है कि var thisLink = (evt) ?
झूठी वापसी करने जा रहा है, जिसका अर्थ है कि यह पुराने आईई-मोड में चलाने की कोशिश करेगा।
onclick="runFunction"
लिखकर, कि यह कहते हुए एक ही है:
link.onclick = runFunction;
जिसका मतलब है कि जब ऑनक्लिक ईवेंट होता है, runFunction बुलाया जाएगा, और W3C संगत ब्राउज़रों में, यह एक घटना वस्तु भेजा जाएगा।
यही कारण है कि समाधान काम करता है।
इस भ्रम से बचने का सबसे अच्छा तरीका जावास्क्रिप्ट के अंदर से जावास्क्रिप्ट से निपटना है, और एचटीएमएल के अंदर एचटीएमएल के साथ सौदा करने के लिए है, ताकि आपको इस बारे में चिंता न करें कि स्ट्रिंग्स कोड में कैसे अनुवाद करते हैं।
अब, यह सब काम करते हैं, और पुनर्निर्देशन को रोकने के लिए प्राप्त करने के लिए, आप ऐसा करना चाहते हैं:
W3C ब्राउज़रों (जो कि घटना पैरामीटर पारित) के लिए:
function runFunction (evt) {
// stops the default-action from happening
// means you need to find another way to fire it, if you want to later
evt.preventDefault();
// stops higher-up elements from hearing about the event
// like if you stop a submit button from "clicking", that doesn't stop the form
// from submitting
evt.stopPropagation();
//the oldIE versions of both of these are
event.cancelBubble = true;
event.returnValue = false;
}
कोई घटना इसका मतलब है कि कार्य करने के लिए दिया जाता है। Thanx। – Vicky