我试图在输入文本框更改时触发事件:
$('.packeta-selector-branch-id').on('change', function () { alert('helo'); })
仅当我在文本框中手动键入某些内容时,此方法才有效,但是在我使用外部JavaScript设置文本框值的情况下,则无效。
我创建了一个小jsfiddle来显示此内容:
https://jsfiddle.net/6vnuqxa0/
要尝试:
任何想法如何解决此问题?
答案 0 :(得分:1)
对jQuery watch for domElement changes?的选定答案建议绑定到DOMSubtreeModified
事件。我已经在您的小提琴中尝试过了,并且有效!答案确实提到此事件可能已被弃用,但值得研究。
在您的情况下,请向您的div
添加一个ID,以使您拥有:
<div id="packeta-selector-branch-id" class="packeta-selector-branch-id"></div>
然后,当该div的内容更改时,以下代码将触发警报。
$('#packeta-selector-branch-id').bind('DOMSubtreeModified', function(e) {
if (e.target.innerHTML.length > 0) {
alert('helo');
}
});
否则,我将查看窗口小部件本身,然后尝试确定它是否触发select上的任何事件。如果是这样,您可以在该事件上附加一些行为。
答案 1 :(得分:0)
trigger('change')。但是输入的ID或名称会更好
$(document).off('click', '.button select-branch').on('click', '.button select-branch', function(){
$('.packeta-selector-branch-id').trigger('change');
})