所以我试图让下面的代码更新基于ajax onclick的价格:
$('#main_body li[data-pricefield="special"]').delegate('onclick','change', function(e)
{
var temp = $(this).attr("id").split('_');
var element_id = temp[1];
var pricedef = $(this).data('pricedef');
if(pricedef == null)
{
pricedef = 0;
}
$("#li_" + element_id).data("pricevalue",pricedef);
calculate_total_payment();
});
到目前为止,似乎工作正常 - 当我输入控制台时:
jQuery('#li_273').data('pricevalue');
我得到的值为“1.00”,实际上是在onclick命令中设置的:
'onclick' => 'jQuery(\'#li_273\').data(\'pricevalue\',\'1.00\');',
我的问题是我的第一个代码块是什么问题,它阻止了以正确的方式计算价格以及如何纠正它?
答案 0 :(得分:1)
' onclick','更改'应该点击更改'在代表中
编辑:" $(' #main_body li [data-pricefield =" special"]')。delegate(' li',& #39;更改',功能(e){当你跳出字段时实际工作 - 它会向它添加1美元。"
所以你应该:
$('#main_body li[data-pricefield="special"]').on('li','click change', function(e) {
也许检查
if(pricedef == undefined || pricedef == null){
答案 1 :(得分:1)
您正在使用
$('#main_body li[data-pricefield="special"]').delegate('onclick','change', function(e){
// ...
});
但是delegate
的语法是.delegate( selector, eventType, handler(eventObject) )
,在这种情况下你应该写
$('#main_body').delegate('li[data-pricefield="special"]','click', function(e){
// ...
});
onclick
中没有jQuery
个事件而AFAIK li
没有change
个事件,所以如果您想使用多个事件,那么您可以使用< / p>
$('#main_body').delegate('li[data-pricefield="special"]','click another_event', function(e){
// ...
});
此外,您可以使用on
代替delegate
。