0

基本上我有如下代码:

$('selector').on('click',function(){
    //Do something here
});
$('selector').click(function(){
    //Does exact same thing.    
});

有没有可能把这些结合起来?或者我会简单地创建一个从这两个绑定内部调用的函数?

抱歉,如果已回答此问题,我确实检查了建议的问题,但没有找到任何答案。

4

4 回答 4

1

$('selector').click()只是一个捷径$('selector').on('click')

于 2012-04-19T09:36:42.147 回答
1
$('selector').on('click',function(){ //Do something here }); 

$('selector').click(function(){ //Does exact same thing.});

第二个是第一个的简短格式。使用任何一种。建议第一个

于 2012-04-19T09:37:31.970 回答
1

据我了解,从 jQuery 1.7 开始,.click()它只是.on('click'). 因此,如果需要,您可以.on('click')直接使用来保存函数调用。

请参阅 jQuery 源:https ://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js

于 2012-04-19T09:38:46.483 回答
-1

您可以只创建一个函数,并从两个回调中调用它:

function doSomething()
{
   alert("something");
}

$('selector').on('click',function(){
    // Do some stuff...

    // Do what should be done by both functions
    doSomething();
});
$('otherselector').click(function(){
    // Do some other stuff...

    // Do what should be done by both functions
    doSomething();   
});

根据评论编辑

如果两个回调应该做完全相同的事情,你可以将函数作为回调传递:

function doSomething()
{
   alert("something");
}

$('selector').on('click',doSomething);
$('otherselector').click(doSomething);

但在这种情况下,你也可以这样做:

$("selector, otherselector").click(function()
{
   alert("something");
});
于 2012-04-19T09:38:53.067 回答