当JavaScript执行更改时,jQuery捕获下拉列表的更改事件
我希望能够使用jQuery检测下拉列表的选定值何时发生更改。下拉列表的选定值被其他JavaScript更改,因此我希望能够捕获此事件 我可以看到下拉列表发生了变化,但是下面的代码没有正确捕获事件。当JavaScript执行更改时,jQuery捕获下拉列表的更改事件,javascript,jquery,html-select,jquery-1.7,Javascript,Jquery,Html Select,Jquery 1.7,我希望能够使用jQuery检测下拉列表的选定值何时发生更改。下拉列表的选定值被其他JavaScript更改,因此我希望能够捕获此事件 我可以看到下拉列表发生了变化,但是下面的代码没有正确捕获事件。change事件是否仅捕获由用户执行的事件,而不捕获其他代码 $('select[name=b_country]').live('change', function() { alert('the country dropdown has changed'); }); <select na
change
事件是否仅捕获由用户执行的事件,而不捕获其他代码
$('select[name=b_country]').live('change', function() {
alert('the country dropdown has changed');
});
<select name="b_country" style="display: block;">
$('select[name=b_country]')。live('change',function(){
警报(“国家/地区下拉列表已更改”);
});
是,只有用户交互触发事件。否则,如果不进入无限循环,就无法(重新)设置侦听器中的值
如果要通知其他(侦听)脚本您更改了值,可以手动触发事件。使用jQuery,这很简单:
$('select[name=b_country]').val(…).change();
我这里的问题是,更改b_country下拉列表的代码不是我的。这是第三方JavaScript,我无法控制它。如果第三方脚本没有提供一个合适的API(用于钩住像这样的事件等),我建议使用另一个。这很令人沮丧。我原以为您可以监听DOM中的特定元素,当它改变状态时,您可以通过任何方式捕获更改。我使用的API没有记录回调,但是他们的支持渠道建议回调确实存在。这让我实现了我需要的功能。嗯,使用未记录的功能就像黑客;-)