[英]Why doesn't my jQuery click event fire on my WordPress site
在我的小提琴中,我有一个简单的引导导航选项卡组,其中的选项卡有两件事:
data-payment_method
属性定义的值。 这是代码:
<ul class="payment_methods methods nav nav-pills">
<li class="payment_method_bacs active"> <a href="#payment_method_bacs_desc" data-toggle="pill" data-payment_method='bacs' class='payment_method_choose'>Direct Bank Transfer </a>
</li>
<li class="payment_method_cheque "> <a href="#payment_method_cheque_desc" data-toggle="pill" data-payment_method='cheque' class='payment_method_choose'>Cheque Payment </a>
</li>
<li class="payment_method_paypal "> <a href="#payment_method_paypal_desc" data-toggle="pill" data-payment_method='paypal' class='payment_method_choose'>PayPal <i class = 'fa fa-credit-card'></i></a>
</li>
</ul>
窗格和输入:
<input type="text" name="payment_method" id="payment_method" value="bacs">
<div class="panel panel-default top-buffer">
<div class="tab-content panel-body">
<div class="tab-pane fade active in" id="payment_method_bacs_desc">
<p>Make your payment directly into our bank account. Please use your Order ID as the payment reference. Your order won't be shipped until the funds have cleared in our account.</p>
</div>
<div class="tab-pane fade " id="payment_method_cheque_desc">
<p>Please send your cheque to Store Name, Store Street, Store Town, Store State / County, Store Postcode.</p>
</div>
<div class="tab-pane fade " id="payment_method_paypal_desc">
<p>Pay via PayPal; you can pay with your credit card if you don't have a PayPal account</p>
</div>
</div>
</div>
当我将代码复制/粘贴到jsFiddle中时,它可以正常工作,但我在WordPress网站(运行WooCommerce)时遇到了麻烦,加载了与两者相关联的标准脚本(太多内容无法在此处发布!)。
导航选项卡工作正常,并且选项卡窗格切换没有问题。 但是我自己的用于更新输入的jQuery不起作用。 我添加了一些console.logs
来查看它能走多远:
jQuery(document).ready(function ($) {
console.log('actived the payment chooser');
var payment_method_input = $('input#payment_method');
$(".payment_method_choose").click(function () {
var payment_method = $(this).data('payment_method');
console.log('you selected ' + payment_method);
payment_method_input.val(payment_method);
});
});
我在控制台中看到“ actived the payment chooser
”,但单击时未出现'you selected...
”,这表明点击事件未正确触发。 一定与该事件有冲突,但是我不认为这是引导项的导航选项卡,因为所有这些在小提琴中都可以正常工作。
控制台中没有其他错误消息。 知道如何找到这种冲突吗?
经过广泛的测试,我完全陷入了困境。
元素选择器的工作正常,如单击事件代码之前的页面中的代码所示:
$('.payment_method_choose').each(function(index){ mydata = $(this).data('payment_method'); console.log('This is element ' + index + ' containing data: ' + mydata); });
它将相关信息输出到控制台,确认jQuery事件确实在该位置触发并且选择器起作用。
.on('click', function() {...
无济于事。 <a>
元素是我自己在模板中添加的,因此任何现有脚本都不应引用。 有办法调试吗? 任何帮助,我们将不胜感激; 在我的本地开发服务器上发布这么大的网页以进行检查显然很困难,但是如果有任何消除歧义的建议,请告诉我。
您可以尝试使用Chrome调试器。 在chrome调试器元素面板中查看您放置了click事件的对象,然后查看该对象上是否定义了事件。 (由于我已经停止将jQuery用于html5,因此我不确定jQuery实际在哪放置偶数。)
如果对象上有任何事件,只需在调试器源面板中放置一些断点即可。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.