0

我有一个 WordPress 网站,我希望向该网站添加一段自定义的 jQuery 代码。下面的代码旨在当用户选择一个单选按钮时触发,将该更改与页面中的另一个更改联系起来。生成的 DOM 将 id 放在元素上,因此我继续将事件绑定到元素。问题是在查看萤火虫时会触发事件,但我的功能没有被触发。

我试图:

  • 将事件绑定放在文档中准备好...
  • 外部文件准备好了...
  • 在标题中添加脚本....
  • 将脚本添加到页脚...
  • 调用事件时同时使用简写 '$' 和 jQuery
  • 尝试了 e.preventDefault() 方法

并且每个方法都有相同的结果,函数不会触发。我也尝试过不同的事件(单击、选择、更改...),但没有成功。

这是脚本:

<script>
jQuery(document).ready(function($) {
var processing = false;
$('#shipping_method_local_delivery').click(function(e){
            e.preventDefault();
            alert("this is the click");
        });

$('#payment_method_rba_etomitreba').change(function(){
    if (processing) {return;}
    processing = true;
    $('#shipping_method_local_delivery').click();
    processing = false;
});

$('#shipping_method_local_pickup').change(function(){
    if (processing) {return;}
    processing = true;  
    $('#payment_method_cod').click();
    processing = false;
});

$('#payment_method_cod').change(function(){
    if (processing) {return;}
    processing = true;
    $('#shipping_method_local_pickup').click();
    processing = false;
});

$('#payment_method_bacs').change(function(){
    if (processing) {return;}
    processing = true;
    $('#shipping_method_local_delivery').click();
    processing = false;
});
});
</script>
4

2 回答 2

0

奇怪的是选择器在运行时没有返回 DOM 元素。如果元素是由另一组 javascript/jquery 创建的,则可能会发生这种情况。

使用 firebug,在您第一次尝试绑定事件处理程序时设置一个断点,并在您的监视窗口中为 jQuery 选择器设置一个监视,并查看数组是否为 0 或已填充。

如果之后要创建 DOM 元素,您可能希望查看使用 jQuery on 方法http://api.jquery.com/on/。绕开你的思想可能有点棘手......但是一旦你得到它,你的代码应该可以正常工作。

于 2013-09-04T20:27:36.820 回答
0

尝试使用 jQuery 更改所有“$”。

于 2013-09-04T20:31:18.073 回答