我试图将2个调用合并为1个,但我不确定如何由于其中一个类具有子内容的'extra's。
$('.abc').children().not(".xyz").click(function() { //stuff });
$('#myid').click(function() { //same stuff });
通常情况下,我只做$('.abc , #myid')
,但myid
有xyz
子,我不想在这种情况下受到影响(不像.abc
),所以我不能结合所有的东西。
合并这两个最好的方法是什么,所以我不重写相同的"东西"函数?
可以使用命名函数
function doStuff() { /* stuff */ }
$('.abc').children().not(".xyz").click(doStuff);
$('#myid').click(doStuff);
如果将它放在一个调用中是至关重要的,您可以将第一个选择器简化为
$('.abc :not(.xyz)')
这将允许你使用
$('.abc :not(.xyz), #myid')
您可以尝试:
$('.abc').children().not(".xyz").add('#myid').click(function() {
// stuff
})
您仍然可以使用。add方法执行类似于$('.abc , #myid')
的操作。
$('.abc').children().not(".xyz").add('#myid').click(function(){ /* stuff*/ });
你可以试试:
function doStuff(){
// your same stuffs
}
$('.abc').children().not(".xyz").click(doStuff);
$('#myid').click(doStuff);