我在DIV上使用jQuery触发更改事件。问题是我在div中隐藏了几个输入。触发事件时,事件的侦听器将输入更改设为div更改。
我创造了一个小小的jsFiddle以更好地展示我所谈论的内容
https://jsfiddle.net/8m3s087e/
<div id="teste">
<input type="hidden" id="t" name="lala" value="" />
<input type="button" id="btn" value="Btn" />
</div>
$("#btn").on('click', function() {
$("#teste").trigger('change');
$("#t").trigger('change');
});
$("#teste").on('change', function() {
alert('oi');
});
嗯,我不是jQuery专家,但我可以阻止这种行为吗?我的意思是,如果我为DIV触发事件,只有具有div作为选择器的侦听器才应该被调用。
谢谢, 卢卡斯
答案 0 :(得分:3)
问题是事件冒出来了 - 你必须在输入上捕获change
事件,并阻止它传播:
$("#t").on('change', function(e) {
e.stopPropagation();
});