onclick将数据传递给javascript

时间:2015-08-04 14:05:54

标签: javascript jquery ruby-on-rails

我有一个链接,点击后应该将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;
&#13;
&#13;

2 个答案:

答案 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"));