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

时间:2012-01-04 17:09:40

标签: jquery wordpress

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

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

<select id="subscribe-dropdown"><option value="0">Subscribe to Show</option>
    <option value="itms://mikewills.me/blog/category/show/bizdevtalk/feed/">iTunes</option>
    <option value="http://fusion.google.com/add?feedurl=http%3A//mikewills.me/blog/category/show/bizdevtalk/feed/">Google</option>
    <option value="winamp://Podcast/Subscribe?url=pcast://mikewills.me/blog/category/show/bizdevtalk/feed/">Winamp</option>
    <option value="zune://subscribe/?BizDevTalk=http://mikewills.me/blog/category/show/bizdevtalk/feed/">Zune</option>
    <option value="pcast://mikewills.me/blog/category/show/bizdevtalk/feed/">Other podcast clients (pcast:// compatible)</option>
    <option value="http://mikewills.me/blog/category/show/bizdevtalk/feed/">RSS</option>
</select>

<script type="text/javascript">
$(function () {
  $("#subscribe-dropdown").change(function() {
    if ($("#subscribe-dropdown option:selected").val() != "0"){
      window.open($("#subscribe-dropdown option:selected").val());
    };
  });
});
</script>

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

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

3 个答案:

答案 0 :(得分:2)

您在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());
    };
  });
});

答案 1 :(得分:1)

尝试将其更改为

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 **/ });

答案 2 :(得分:1)

描述

我已在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());
    };
  });
});

更多信息