我希望在成功的ajax函数之后更新元素的onClick
属性。但是它没有按预期工作。我在此探讨了网,但那些没有带我去解决。
$("button[name = 'proceed_cart']").attr("onClick", "checkMinOrder(' + data.min_order + ',' + data.sub_total + ')");
此处proceed_cart
是名称attr。
答案 0 :(得分:0)
您没有正确转义函数中的参数。试试这个:
$("button[name = 'proceed_cart']").attr("onClick", "checkMinOrder('" + data.min_order + "','" + data.sub_total +
"')");
<强>更新强>
您可以查看下面的代码段,看看它的实际效果:
var data = {
min_order: 'test1',
sub_total: 'test2'
};
var onclickAttr = $("button[name = 'proceed_cart']").attr("onClick");
console.log('Original onclick value: ' + onclickAttr);
onclickAttr = $("button[name = 'proceed_cart']").attr("onClick", "checkMinOrder('" + data.min_order + "','" + data.sub_total + "')");
console.log("New onclick value: " + $("button[name = 'proceed_cart']").attr("onClick"));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button name='proceed_cart' onClick='checkMinOrder()'>
Button
</button>
答案 1 :(得分:0)
你的榜样是不好的做法。
Pure Javascript:
document.querySelector("button[name = 'proceed_cart']").addEventListener("click", function()
{
checkMinOrder(data.min_order, data.sub_total);
});
或jQuery:
$("button[name = 'proceed_cart']").click(function()
{
checkMinOrder(data.min_order, data.sub_total);
});
答案 2 :(得分:0)
让它变得更简单,
如果您需要传递引号?
var handlerMethod = "checkMinOrder('"+ data.min_order +"','"+ data.sub_total +"')";
,否则
var handlerMethod = "checkMinOrder("+ data.min_order +","+ data.sub_total +")";
并且做到了,
$("button[name = proceed_cart]").attr("onClick", handlerMethod);