我正在处理一些使用对服务器的 ajax 调用构建的页面,因此我依赖于.on()
将事件处理程序附加到新项目。
但是,我想知道,javascript:function()
只要事件处理程序是click
.
这是一个例子。
我从服务器得到一个链接元素a
:
<a href="javascript:doMoreStuff()" class="classThatDoesMore">Do More!</a>
我将它插入到文档中,如下所示:
// ajax call and so
$(this).html(response);
为了“做更多”,我有两种方法(可能还有其他方法,但我不知道,但欢迎提出任何建议!):
$(document).on("click",".clssThatDoesMore",function(){ // I need (document)
// here something will be done
});
或者
doMoreStuff(){
// here something will be done as well
}
据我所知,这两种解决方案几乎都是跨浏览器的(我已经测试过href="javascript:function()"
,至少可以追溯到 IE8),但如果我错了,请告诉我!
我想知道过多的.on()
“侦听器”是否会对浏览器造成很大的负载,因此是否最好依赖javascript:function()
,或者相反,.on()
是否根本不需要太多资源并且.on()
在页面中有多个侦听器不是问题。
PS 我已经放弃了onclick="doMoreStuff()"
,因为在 Safari 中它不起作用,而在 FF 中,相同的代码是相同的,如果使用 e 完成,在 Safari 中也是如此href="javascript:doMoreStuff()
。
PPS这不是同一个老问题js v.jquery,对我来说,重点不是一般来说哪个更有效,我想了解实现这一特定任务的最佳方式是什么:-)