【发布时间】:2015-08-03 04:36:22
【问题描述】:
我希望有人可以在这里帮助我。我已经挣扎了3天。 :)
我是 wordpress-woocommerce 和 php 的新手,但是当使用 Ajax 购物车将商品添加到购物车时,我使用的主题不会显示任何“迹象”。我不擅长编程,但创建了一些 Javascript 来尝试解决这个问题。不幸的是,现在如果你点击一个按钮,所有按钮都会改变。
我希望代码仅适用于被点击的按钮。
主要标准:
- 按钮不能有单独的 ID。必须单独使用类
- 按钮是为每个产品动态生成的,每页的产品数量是不可预测的
- 我认为不能使用“onclick="this.innerHTML='hi Stack!'" 之类的内容(它会破坏类别页面)
这是我目前的笔,包括 html、css 和 js:http://codepen.io/xkurohatox/pen/eNbMKb
HTML
<a href="#" class="button add_to_cart_button product_type_simple added" onclick="birds()">Add to Cart</a>
<a href="#" class="button add_to_cart_button product_type_simple added" onclick="birds()">Add to Cart</a>
<a href="#" class="button add_to_cart_button product_type_simple added" onclick="birds()">Add to Cart</a>
<a href="#" class="button add_to_cart_button product_type_simple added" onclick="birds()">Add to Cart</a>
实际上,按钮的数量可能在 1 到 2000 个之间。
css
.button.add_to_cart_button.product_type_simple.added {color:yellow;}
js
function birds(){
var a = document.querySelectorAll('.button.add_to_cart_button.product_type_simple.added' ), i;
for (i = 0; i < a.length; ++i) {
a[i].style.color = "pink";
a[i].innerHTML="Success";
}
setTimeout ( 'cats()', 2000 );
}
function cats(){
var a = document.querySelectorAll('.button.add_to_cart_button.product_type_simple.added' ), i;
for (i = 0; i < a.length; ++i) {
a[i].style.color = "red";
a[i].innerHTML="Add to Cart";
}
}
这里是元素检查器的页面:http://s.codepen.io/xkurohatox/debug/eNbMKb?
我曾多次访问该网站,但直到现在才加入。预先感谢您的任何帮助! =)
【问题讨论】:
-
我对 woocommerce 的了解为零,所以我将其发布为评论,但这个
added类看起来相当显眼。是否这是框架在将商品添加到购物车后动态添加的类,在这种情况下,您可以利用 CSS 中的类?还是它总是在那里/有其他语义含义? -
嗨,IC。你是对的,它是动态生成的!我不确定如何利用它来更改文本,因为几乎所有内容都在 php 中(我还不知道),而且我害怕尝试编辑它。老实说,我没想到大部分表格都是用 php 编写的,尽管仍然很高兴学习。您对在哪里寻找或尝试/做什么有什么建议吗?感谢您的关注!真的让我很开心:)
-
FWIW 看看 stackoverflow.com/a/29682894/44853 。这有点 hacky,但如果它完成了工作,你也许可以做类似的事情。
-
谢谢我!我正在研究这个以及“复选标记”方法,但害怕跨浏览器问题。我可能会先尝试一些比添加到购物车按钮更重要的东西,但可能还需要再次查看它以添加到购物车(仍然有一些问题,但可能有问题),你的答案是特别是woocommerce。 Wooooohoo ;) 再次感谢您!
-
WooCommerce 已经这样做了,这是商店档案,所以我看不出自己写这个的意义。相反,我会查看您的主题覆盖了哪些模板以及它为什么会破坏默认功能。
标签: javascript jquery ajax wordpress woocommerce