基本上我有如下代码:
$('selector').on('click',function(){
//Do something here
});
$('selector').click(function(){
//Does exact same thing.
});
有没有可能把这些结合起来?或者我会简单地创建一个从这两个绑定内部调用的函数?
抱歉,如果已回答此问题,我确实检查了建议的问题,但没有找到任何答案。
基本上我有如下代码:
$('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");
});