我有一个链接,点击后应该将rails变量分配给JavaScript变量。然后使用JavaScript来计算价格。我现在用硬编码值计算价格。
在html中我需要data-price
在js中为var blankPrice
。任何帮助都会很棒。
$("a.shirt-color-link").on("click", function(){
calculatePrice($(this));
})
function calculatePrice(){
var blankPrice = obj.attr("data-price");
console.log(blankPrice)
var pricePerSide = 3;
var printedSides = 0;
if (frontCanvas) {
var frontCanvasJson = JSON.parse(frontCanvas);
if (frontCanvasJson && frontCanvasJson.objects.length > 0)
printedSides++;
}
if (backCanvas) {
var backCanvasJson = JSON.parse(backCanvas);
if (backCanvasJson && backCanvasJson.objects.length > 0)
printedSides++;
}
var total = blankPrice + (pricePerSide * printedSides);
$('.base-price').text('$' + total);
}

<a
tabindex="-1"
data-original-title="<%= shirt_color.color_name.titleize %>"
class="shirt-color-link"
data-color="#<%= shirt_color.hex %>"
data-price="<%= product.base_price %>"
data-product-id="<%= product.id %>">
</a>
&#13;
答案 0 :(得分:2)
link元素的click处理程序在哪里?
您可以在jQuery中执行以下操作:首先向链接添加点击操作:
$("a.shirt-color-link").on("click", function(){
calculatePrice($(this));
})
然后在calculatePrice
添加参数obj
并将var blankPrice = 5;
替换为:
var blankPrice = obj.attr("data-price");
obj
指的是点击后的链接及其data-attributes
。
答案 1 :(得分:0)
$('.shirt-color-link').attr("data-price", blankPrice);
编辑 - 这正在改变&#34;数据价格&#34;属性为blankPrice变量的值。你可能会想要反过来再次阅读(它有点不清楚),在这种情况下做
var blankPrice = parseInt($('.shirt-color-link').attr("data-price"));