Javascript jQuery在下拉列表中未触发更改事件

Javascript jQuery在下拉列表中未触发更改事件,javascript,jquery,wordpress,Javascript,Jquery,Wordpress,我试图在jQuery(wordpress)中触发下拉更改事件,但它不起作用 jQuery("select.buDropDown").each(function() { this.selectedIndex = 0 }).trigger('change'); 在控制台中运行此命令只会将selectedIndex更改为0,但不会触发显示/隐藏页面上某些元素的更改事件 但是,在控制台中运行此命令时,一切都会触发: $("select.buDropDown").each(function() { th

我试图在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代码中,它仍然不会触发更改事件


有什么想法吗?

您的问题是在关闭每个循环后调用触发器函数。这永远不会发生。以下将起作用:

jQuery("select.buDropDown").each(function() { 
    this.selectedIndex = 0;
    jQuery(this).trigger('change'); 
});
顺便说一下,下面的声明:

$("select.buDropDown").each(function() { this.selectedIndex = 0 }).trigger('change');

这意味着选择select.buDropDown的集合并循环此集合,然后触发此集合的更改。它将仅触发此集合中第一个对象的更改。并非全部。

感谢您的所有贡献,您给了我一些我想遵循的想法,以下几点对我的情况起到了作用:

$("select.buDropDown").each(function() { 
        this.selectedIndex = 0;
     });
    $('select.buDropDown').parent().children('div').each(function() { $(this).hide(); });

即使下拉菜单的相应更改事件会处理掉它,重置为原始状态也很好。

这是一种非常奇怪的行为,因为
$
jQuery
的别名。你能用一个例子来说明这个问题吗?@Rorymcrossan我想他应该在这里加一个片段。现在帮你自己一个忙,停止使用wordpress。2.封装所有jQuery并将
jQuery
重新分配给
$
,如下
(函数($){…/*这里的代码*/…})(jQuery)
@Panomosh如果放弃是你的解决方案,那么我想知道你现在使用的是什么系统,因为CMS出现问题,然后每次出现轻微问题时建议将其更改为解决方案会适得其反。感谢您提出的将其包装以获取$back的建议,但即使这样做,它也不会触发正确的存储库,我在尝试使其工作时确实这样做了,但是,在控制台中使用jQuery运行它不会触发更改事件,即使selectedIndex成功更改(使用您的方法)