DIV上的jQuery更改事件

时间:2015-08-20 20:33:47

标签: jquery

我在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作为选择器的侦听器才应该被调用。

谢谢, 卢卡斯

1 个答案:

答案 0 :(得分:3)

问题是事件冒出来了 - 你必须在输入上捕获change事件,并阻止它传播:

 $("#t").on('change', function(e) {
     e.stopPropagation();
 });

https://jsfiddle.net/8m3s087e/3/