为什么不是我的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选择器