是否可以组合'on'和'click'jquery函数?

时间:2012-04-19 09:34:49

标签: javascript jquery function click live

基本上我有以下代码:

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

是否可以将这些结合起来?或者我只是简单地从这两个绑定中调用函数?

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

4 个答案:

答案 0 :(得分:1)

$('selector').click()只是$('selector').on('click')

的快捷方式

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:1)

据我所知,从jQuery 1.7开始,.click()仅仅是.on('click')的简写。如果需要,可以直接使用.on('click')来保存函数调用。

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

答案 3 :(得分:-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");
});