我有一些jQuery函数可以在<SELECT>
字段中选择新值时更新某些数字。 <SELECT>
项是由用户动态添加的,因此这些函数使用.live()函数。在Mozilla,Chrome和IE8中,一切都按计划进行,但当我尝试访问iPad上的页面时,数字不再相应更新。我必须点击 <SELECT>
字段第二次才能更新数字。这是我的一个职能:
// Update subtotal when .months is changed
$(".months").live('click',function(){
var pid = this.id.replace("months", "");
var price = document.getElementById('row' + pid).className;
updateSubtotal(pid, price);
});
所有功能都包含在document.ready()
块中。我尝试过“点击更改”,只是“更改”,但是在其他一些浏览器中也存在问题。
感谢您的帮助!
答案 0 :(得分:3)
iPad和选择元素不是很好玩。如果您需要所选值来执行任何操作,则需要绑定到模糊。
尝试这样的事情( .months 应该是你的选择元素):
// Update subtotal when .months is changed
$(".months").on('blur', function(){
var pid = this.id.replace("months", "");
var price = document.getElementById('row' + pid).className;
updateSubtotal(pid, price);
});
修改强>
试试这个:
// Update subtotal when .months is changed
$(document).on('blur|click', ".months", function(){
var pid = this.id.replace("months", "");
var price = document.getElementById('row' + pid).className;
updateSubtotal(pid, price);
});
关于 on()的好处是你可以将它附加到一个元素并从那里委托。由于您的 $(文档)将始终存在,因此它还可以捕获您动态添加到页面的元素,以及从一开始就不存在的元素。由于您的原始代码使用 live I 期望通过动态加载或生成元素。在这种情况下,为了使用 on()将事件绑定到它,您必须绑定到文档和委托到任何 .months 即将到来。
答案 1 :(得分:0)
如果你向div(或span,或任何东西)添加一个空的onclick =“”,它可以工作.... 我不知道为什么:)