为什么不是我的jQuery .Change被触发?

我昨晚和今天早上一直在玩这个。 在我的WordPress网站上,我添加了一个页面的下拉列表,允许用户选择播客订阅方法(完全类似于TWiT.tv的方法)。

在页面编辑器中,我有以下代码。

Subscribe to Show iTunes Google Winamp Zune Other podcast clients (pcast:// compatible) RSS   $(function () { $("#subscribe-dropdown").change(function() { if ($("#subscribe-dropdown option:selected").val() != "0"){ window.open($("#subscribe-dropdown option:selected").val()); }; }); });  

由于可以公开访问,因此可以在http://mikewills.me/podcastmike/bizdevtalk/找到该页面。

但是,当我在调试中运行它时,没有触发.change() 。 这是一个WordPress页面问题还是不正确的设置?

你在noConflict模式下使用jQuery ,你应该使用jQuery而不是$

 jQuery(function () { jQuery("#subscribe-dropdown").change(function() { if (jQuery("#subscribe-dropdown option:selected").val() != "0"){ window.open(jQuery("#subscribe-dropdown option:selected").val()); }; }); }); 

尝试将其更改为

 jQuery(function($) { $("#subscribe-dropdown").change(function() { if ($("#subscribe-dropdown option:selected").val() != "0") { window.open($("#subscribe-dropdown option:selected").val()); }; }); }); 

或者,将它包装在$(document).ready(function() { /** your code in here **/ });

描述

我已经在jsFiddle上测试了你的代码并且触发了事件。

所以我认为这是与另一个JavaScript库的冲突。

您可以将$更改$ jQuery以确保它由jQuery处理。

样品

 jQuery(function () { jQuery("#subscribe-dropdown").change(function() { if (jQuery("#subscribe-dropdown option:selected").val() != "0"){ window.open(jQuery("#subscribe-dropdown option:selected").val()); }; }); }); 

更多信息

  • jsFiddle示范
  • jQuery – jQuery选择器