Javascript 更改选择框中的值后无法触发更改
我试图在下拉框中更改一个值,然后触发该值更改时发生的事件。代码非常简单,如下所示:Javascript 更改选择框中的值后无法触发更改,javascript,jquery,events,triggers,Javascript,Jquery,Events,Triggers,我试图在下拉框中更改一个值,然后触发该值更改时发生的事件。代码非常简单,如下所示: zScalerEndPointList.on("change", function(){ // Change the value $("select#phase1_type").val("string:ddns"); // Trigger the change $("select#phase1_type").trigger("change")
zScalerEndPointList.on("change", function(){
// Change the value
$("select#phase1_type").val("string:ddns");
// Trigger the change
$("select#phase1_type").trigger("change");
})
已成功更改该值,但未触发该事件。如果使用jQuery记录对象,我可以看到附加的更改事件为null。但是,如果在Javascript控制台窗口中手动运行以下命令,则可以正常工作:
$("select#phase1_type").trigger("change");
对可能出现的问题有什么看法吗?我不拥有这个应用程序,这是一个通过TamperMonkey执行的Javascript
谢谢你的意见
/帕特里克我不确定我抓到你了,但你可以用手表查看多普敦列表或类似的东西
$scope.$watch(function () { return self.filter; }, function (newValue, oldValue) {
if (newFilter != oldFilter) {
// call trigger
}
}, true);
原来这是一个重复的问题。这是我以前问过的。有点尴尬 通过以下功能解决此问题:
function triggerEvent(e, s){
"use strict";
var event = document.createEvent('HTMLEvents');
event.initEvent(e, true, true);
try {
document.querySelector(s).dispatchEvent(event);
} catch(err){
console.log("Unable to fire event " + e + " on selector " + s);
console.log(err);
}
}
看起来这两个web应用程序都在使用某种Transpile框架,通过删除和重新向DOM添加元素,这让我的生活变得很艰难。希望这对其他人也有帮助
/Patrik无法复制,代码工作正常:。如果您有问题,我们需要查看更多的代码,以便复制问题。我能想到的唯一可能导致此行为的原因是,如果您在触发事件后定义更改事件处理程序,则可能会重复