将 2 个 ID 与高级参数相结合



我试图将2个调用合并为1个,但我不确定如何由于其中一个类具有子内容的'extra's。

$('.abc').children().not(".xyz").click(function() { //stuff     });
$('#myid').click(function() {   //same stuff    });

通常情况下,我只做$('.abc , #myid'),但myidxyz子,我不想在这种情况下受到影响(不像.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);

最新更新