有2个ID#firstTableTotal,#secondTableTotal和1个功能contentchanged。如何使两个id(#firstTableTotal,#secondTableTotal)使用相同的函数(contentchanged)。我尝试使用以下代码,但结果与预期不符。
$('#firstTableTotal').trigger('contentchanged');
$('#secondTableTotal').trigger('contentchanged');
$(document).on('contentchanged', '#firstTableTotal #secondTableTotal', function()
{alert("Calculations go here");
});
答案 0 :(得分:2)
如上所述,你甚至在绑定它之前就已经将这个事件搞砸了......另一个问题是你的选择器......每个ID之间必须有一个逗号。否则这个意思就是父子组合。
应该是
'#firstTableTotal, #secondTableTotal'
现在你所拥有的实际意味着选择标识为secondTableTotal
的元素,该元素是ID为firstTableTotal
的元素的子元素。在您的代码中不是这种情况。
您的目标是针对这两个要素。所以在它们之间放一个逗号。这使选择器选择两个不同的元素。
答案 1 :(得分:0)
这是因为你甚至在绑定之前就触发了event
。
还可以使用逗号分隔2个不同的选择器
$(document).on('contentchanged', '#firstTableTotal, #secondTableTotal',
答案 2 :(得分:0)
如果contentchanged
是event
:
var myFunc = function(){
alert("Calculations go here");
};
$('#firstTableTotal').on('contentchanged', myFunc);
$('#secondTableTotal').on('contentchanged', myFunc);
//Some time later
$('#firstTableTotal').trigger('contentchanged');
$('#secondTableTotal').trigger('contentchanged');
如果contentchanged
实际上是function
:
var contentchanged = function(){
alert("Calculations go here");
};
$('#firstTableTotal').on('some_event', contentchanged);
$('#secondTableTotal').on('some_event', contentchanged);
//Some time later
$('#firstTableTotal').trigger('some_event');
$('#secondTableTotal').trigger('some_event');
答案 3 :(得分:-1)
如果你有一个名为contentChanged的函数:
var contentchanged= function () { //do something}
然后你可以简单地为每个DOM节点添加一个监听器。
$('#firstTableTotal').on(eventNameHere, contentchanged);
$('#secondTableTotal').on(eventNameHere, contentchanged);
最好将侦听器直接附加到节点,这样当从DOM中删除节点时,侦听器也将被垃圾收集。如果将监听器添加到窗口,就像您当前正在执行的那样,则需要手动将其删除才能进行垃圾收集。