2

我正在尝试将 2 个调用合并为 1 个,但由于其中一个类对子内容的“额外”,我不确定如何。

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

通常,我会这样做,但$('.abc , #myid')在这种情况下我不想受到影响的子孩子(不像myidxyz.abc),所以我不能结合所有的东西。

合并这两者的最佳方法是什么,这样我就不会重新编写相同的“东西”功能?

4

5 回答 5

2

如果将它放在一个调用中至关重要,您可以将第一个选择器简化为

$('.abc :not(.xyz)')

这将允许你使用

$('.abc :not(.xyz), #myid')
于 2013-03-20T19:45:28.897 回答
2

您始终可以使用命名函数

function doStuff() { /* stuff */ }

$('.abc').children().not(".xyz").click(doStuff);
$('#myid').click(doStuff);
于 2013-03-20T19:42:47.823 回答
1

您仍然可以执行类似于$('.abc , #myid')使用 .add 方法的操作。

$('.abc').children().not(".xyz").add('#myid').click(function(){ /* stuff*/ });
于 2013-03-20T19:45:30.863 回答
1

你可以试试:

$('.abc').children().not(".xyz").add('#myid').click(function() {
  // stuff
})
于 2013-03-20T19:44:22.260 回答
0

你可以试试这个:

function doStuff(){
  // your same stuffs
}

$('.abc').children().not(".xyz").click(doStuff);
$('#myid').click(doStuff);
于 2013-03-20T19:43:48.303 回答