我试图了解这两种调用JavaScript / jQuery函数的方式之间的差异(如果有的话)。
方法1,在document.ready()
中:
$('body').on('click', 'a.popup', popup);
然后
function popup() {
$(this) // do something
}
方法2,在document.ready()
中:
popup();
然后
function popup() {
$("a.popup").click(function (e) {
// do something here
});
}
所有建议都表示赞赏。
答案 0 :(得分:6)
在方法2中,popup
函数可能只被调用一次,否则你会多次附加相同的函数onclick
,这可能不是你想要的。
因此,将popup
函数的主体写在document.ready()
以外的其他地方没有什么好处。
方法1的优点是,如果您想将相同的功能附加到各种事件和/或各种元素,例如, onclick
,onmousemove
等。这样你就不必再写两次函数体了。
简而言之,我没有看到方法2中的好处,而我在方法1中看到了一些。
答案 1 :(得分:0)
我不太确定,但我想你问的是调用jQuery .on()方法和jQuery .click()方法有什么区别,对吗?
如:
$someEl.on('click', someFunc);
// or
$someEl.click(someFunc);
像这样,两者都非常相同。但是使用.on()方法,您有机会将namespacing(在第一个链接中解释)引入元素的事件。像这样:
$someEl.on('click.do1', someFunc1);
$someEl.on('click.do2', someFunc2);
因此,如果在以后的进度中您只想删除或触发一个回调函数(someFunc1,someFunc2),您可以通过调用:
来执行此操作。$someEl.off('click.do1');
$someEl.trigger('click.do2');
希望这有帮助