1

我试图了解这两种调用 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
    });
}

所有建议表示赞赏。

4

2 回答 2

6

在方法 2 中,该popup函数可能只被调用一次,否则您将onclick多次附加相同的函数,这可能不是您想要的。popup因此,将函数的主体写入其他地方并没有太大的好处,而不是直接在document.ready().

方法 1 的优点是如果您想将相同的函数附加到各种事件和/或各种元素,例如onclickonmousemove。这样您就不必编写函数的主体两次。

简而言之,我没有看到方法 2 的好处,而我在方法 1 中看到了一些好处。

于 2013-03-21T13:54:03.363 回答
0

我不太确定,但我想你是在问调用 jQuery .on()方法和jQuery .click()方法有什么区别,对吧?

如:

$someEl.on('click', someFunc);
// or
$someEl.click(someFunc);

像这样,两者几乎是等价的。但是,使用 .on() 方法,您有机会将命名空间(在第一个链接中解释)引入元素的事件。像这样:

$someEl.on('click.do1', someFunc1);
$someEl.on('click.do2', someFunc2);

因此,如果在以后的进展中您只想删除或触发其中一个回调函数(someFunc1、someFunc2),您可以通过调用:

$someEl.off('click.do1');
$someEl.trigger('click.do2');

希望这可以帮助

于 2013-03-21T14:00:03.280 回答