是否可以组合“打开”和“单击”jquery 函数

Is it possible to combine the 'on' and 'click' jquery functions?

本文关键字:jquery 函数 单击 打开 组合 是否      更新时间:2023-09-26

基本上我有如下代码:

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

是否可以将这些结合起来?或者我会简单地创建一个函数来从这两个绑定内部调用?

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

$('selector').click()只是$('selector').on('click')的快捷方式

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

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

第二个 一个 第一个的简称。使用任何一个。建议使用第一个

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

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

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

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");
});