2014-01-28 29 views
0

我正在构建自定义购物车,在弹出的模型中使用jQuery onclick在同一页面上显示产品详细信息,但是在弹出窗口上我还想更新product_ID“Add在的onclick的第一个参数购物车”按钮,下面是demonsration代码:用jQuery点击div替换onclick的具体参数

产品缩略图:

<div id="product"> 
    <img src="http://placehold.it/250x150" /> 
    <input type="hidden" value="159" /> 
</div> 

弹出添加到购物车按钮

<a href="#" onclick="add_to_cart('Product_ID', 'Product_Price');">Add to Cart</a> 

我想要的是,当我对产品<div id="product">点击比也更新添加到购物车按钮与第一个参数的onclick ATTR在隐藏输入的值,它是PRODUCT_ID,对此的任何帮助将非常可观。

+0

我试图来解决以下链接小提琴http://jsfiddle.net/SJP7k/14/ –

+0

就这个问题请注意,上面的示例不包含Jquery的一个小块。这都是纯粹的JavaScript。 – Liam

回答

2

演示FIDDLE

jQuery的

 $(document).ready(function(){ 
var ProductID = $('div').find('#ProductID').attr('value'); 
    var Price = $('div').find('#price').attr('value'); 

$('div').click(function (event) { 
    event.preventDefault(); 
    $('a').attr('onclick', function (i, v) { 
     v=v.replace('Product ID',ProductID); 
     return v.replace('Product Price',Price); 
    }); 
}); 

    }); 

function add_to_cart(productid,price) 
{ 
    alert(productid+"/"+price); 
} 

我希望这是你所需要的

+0

感谢P.Sethuraman,这正是我需要的,干杯:) –

+0

另一个问题,如果参数的值是动态的,我的意思是我们已经通过匹配值来代替**“产品价格”**的值字符串,所以而不是**“产品价格”**会有一些随机值! 那么我们如何才能只更新特定的(第一或第二)参数。 –

0

要 '速战速决' 的代码,你可以用户是这样的:

http://jsfiddle.net/SJP7k/15/

小提琴HTML

<div id="product"> 
    <img src="http://placehold.it/250x150" /> 
    <input type="hidden" value="159" /> 
</div> 
<br> 
<br> 
<a href="#" id="add" data-product="10" data-price="9.95">Add to Cart btn in popup</a> 

小提琴JS

$('#product').click(function (event) { 
    event.preventDefault(); 
    var ProductID = $(this).find('input').attr('value'); 
    $('#add').data('product', ProductID); 
}); 

$('#add').click(function() { 
    alert('PRODUCT: ' + $(this).data('product') + ' PRICE: $' + $(this).data('price')); 
});