我更改了购物车和结帐页面的前端模板(通过将文件复制到我的自定义主题文件夹中进行覆盖),方法是将一些table-row-columns-constructs替换为div容器,以创建(我认为)更清晰的代码布局,也用于处理响应性布局更改。

看来,从模板woocommerce_checkout_order_review模板触发的Wordpress钩子/操作checkout/form-checkout.php使用了cart/cart-shipping.php中的代码,这很好,因为ist保留了包含两个页面上可以选择的传送方法的列表。

一个“关键”更改是:删除tdth标记,并用<tr class="shipping">中的<div class="shipping">替换cart/cart-shipping.php

这导致了问题:

单击shipping_methods ul的列表项会触发事件update_checkoutupdated_checkout,它们(我认为)负责更新购物车/结帐页面。
使用更改后的HTML模板,事情无法正常运行。每次单击都会复制整个ul
我在woocommerce js code中找不到tr.shipping.shipping的任何出现。

为什么更改模板结构会破坏jQuery代码?我如何才能实现这一变化而又不中断呢?

最佳答案

没有更多的代码,很难说。也许如果您可以提供链接,我可以提供更多帮助?

失明,听起来这是与单击相关的问题...

我可以确认,在assets/js/admin/meta-boxes-order.js中,第250-251行以及第541、786和874行有多个对tr.shipping的引用。很可能是这些行引起了问题。

您想要做的事情有点荒谬……而且无法测试,很难说或无法确认,但是请尝试复制那些相关功能,只在您的div.shipping上调用它

看看有什么可以把你赶出去的。

关于jquery - 不带表中断的WooCommerce Checkout模板会破坏JS功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47127218/

10-10 17:09