我试图在jQuery(wordpress)中触发下拉列表更改事件,但它无效。
jQuery("select.buDropDown").each(function() { this.selectedIndex = 0 }).trigger('change');
在控制台中运行此选项只会将selectedIndex更改为0,但永远不会触发显示/隐藏页面上某些元素的更改事件。
但是,在控制台中运行此功能,一切都可以正常启动:
$("select.buDropDown").each(function() { this.selectedIndex = 0 }).trigger('change');
我找不到任何理由" $"会工作,但不是" jQuery"
我尝试将其包装成:
jQuery(function($) {}
能够使用$代替,但在wordpress代码中它仍然没有触发更改事件
有什么想法吗?
答案 0 :(得分:1)
您的问题是您在关闭每个循环后调用触发器功能。这绝不会发生。以下方法可行:
jQuery("select.buDropDown").each(function() {
this.selectedIndex = 0;
jQuery(this).trigger('change');
});
顺便说一句,以下声明:
$("select.buDropDown").each(function() { this.selectedIndex = 0 }).trigger('change');
这意味着选择select.buDropDown的集合并循环此集合,然后触发对此集合的更改。它将仅触发此集合中第一个对象的更改。不是为了整体。
答案 1 :(得分:0)
感谢您的所有贡献,您给了我一些我想要遵循的想法,以下内容适用于我的情况:
$("select.buDropDown").each(function() {
this.selectedIndex = 0;
});
$('select.buDropDown').parent().children('div').each(function() { $(this).hide(); });
即使下拉列表中各自的更改事件已经处理完毕,重置为原始状态也没问题。