Php Jquery javascript ajax-价格总计未更新
因此,我试图让下面的代码基于ajax onclick更新价格:Php Jquery javascript ajax-价格总计未更新,php,javascript,jquery,ajax,Php,Javascript,Jquery,Ajax,因此,我试图让下面的代码基于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(
$('#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\');',
我的问题是,我的第一段代码阻止它以正确的方式计算价格,这段代码出了什么问题?我如何更正它?'onclick','change'应该是委托中的'click change' 编辑:“$('#main_body li[data pricefield=“special”])。委托('li','change',函数(e){当您在字段外进行制表时实际工作-它将$1添加到其中。” 因此,你应该:
$('#main_body li[data-pricefield="special"]').on('li','click change', function(e) {
也许可以检查一下
if(pricedef == undefined || pricedef == null){
您正在使用
$('#main_body li[data-pricefield="special"]').delegate('onclick','change', function(e){
// ...
});
但是delegate
的语法是.delegate(选择器、事件类型、处理程序(事件对象))
,在这种情况下,您应该编写
$('#main_body').delegate('li[data-pricefield="special"]','click', function(e){
// ...
});
在jQuery
中没有onclick
事件,而且一个li
没有change
事件,因此如果要使用多个事件,则可以使用
$('#main_body').delegate('li[data-pricefield="special"]','click another_event', function(e){
// ...
});
您也可以在上使用,而不是委托
和。两个问题:1)你确定你的委托函数正在启动吗?2)你在哪里设置pricedef
?当你说什么阻止它计算“正确的方式”-它实际上在做什么是错误的?你需要指定一个选择器。委托('onclick'
@Kyle-开始标记:我如何确定代理是否被解雇?Ben-价格应该在jQuery 1.7的主页上更新,.delegate()已被.on()取代方法。我可能会用一些标记得到更好的答案,但我猜是位这可能是我猜到的您的标记,并且这个选择器可能是$(“#main_body”)的更好挂钩。在('li[data pricefield=“special”]”,
上,我唯一能想到的是如果他触发了自定义的“change”和“onclick”"事件……但考虑到其余部分,这似乎不太可能。@MarkSchultheiss,谢谢!是的,可能是这样,但在这种情况下,多个事件应该放在第二个参数中,并用一个空格在旁边引号中分隔。@Sheikh-非常感谢-这似乎解决了问题。虽然事情仍然是按价格进行硬编码的,但它正在添加价格与总价的比例正确!再次感谢!有没有可能在该事件发生时更新另一个显示值为1的字段(文本框)?