直接调用函数onclick =“fn1()”和onclick =“javascript:fnq()”之间有什么区别?
最好的方法是什么?
由于
答案 0 :(得分:2)
它们在功能上是等同的。哪个最好?都不是。不要混淆标记和JavaScript。相反,将函数绑定到元素:
<div id="element"></div>
现在有多种方法可以做到这一点:
// Find element
var el = document.getElementById('element');
// Option 1:
el.onclick = function() {
fn1();
};
// Or by reference:
el.onclick = fn1;
// Option 2:
if (el.addEventListener) {
el.addEventListener('click', fn1, false);
} else {
el.attachEvent('click', fn1);
}
答案 1 :(得分:2)
区别在于onclick="fn1()"
表示您的想法(“运行函数fn1()
”),而onclick="javascript:fnq()"
正在使用javascript:
作为无用的label对于语句fnq()
。请注意,你也可以写onclick="foobarbaz:fnq()"
,它会做同样的事情; javascript
绝对没有什么特别之处。 (您可能会考虑在javascript:
中使用<a href="javascript:fnq()">
作为网址协议,其中javascript:
与http:
具有相同的通用目的:它表示的类型URL。)
其中,onclick="fn1()"
是更好的做法,尽管通常最好从JavaScript附加点击处理程序,而不是将其放在HTML中。
答案 2 :(得分:0)
我相信W3C已经贬低了javascript inline。
当您尝试将两种不同的脚本语言与事件处理程序一起使用时,仅使用内联javascript。