昨晚和今天早上我正在玩这个。在我的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页面问题还是没有完全正确设置?
答案 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());
};
});
});