我有一个简单的列表,其id绑定到jQuery的“click”事件。当用户选择数量时,表单会计算总价并将其显示在相邻字段中:
<select id="qty" name="blah" style="cursor:pointer" onclick="">
<option value="0" selected="">0</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
$("#qty").click(function() {
/* use qty and unit price to get and display total price */
$("#price").val(parseFloat($("#qty").val() * unit_price).toFixed(2));
});
非常简单,在PC上工作正常,但不仅仅在iPad上(我知道有悬停与点击怪异),而且在Android上也是如此,尽管 风格=&#34;光标:指针&#34;的onclick =&#34;&#34; (这应该是矫枉过正的!)。
在显示选项下拉列表的点击上调用函数IS,但是当从列表中选择数量时,不会在平板电脑上调用该函数(价格显示为0.00)。但如果再次单击选项选择相同的数量,则价格会正确显示。更奇怪的是,如果在第二次或随后的点击中更改了数量,显示的价格总是“一次点击”。
例如: 说单价是50;如果我首先选择1的数量,则显示的价格为0.00。如果我再次选择1,则显示的价格为50.00。如果我然后选择2的数量,显示的价格仍然是50.00。但如果我现在选择3的数量,显示的价格是100.00。等
问题似乎不是通常的悬停与点击问题,而是与平板电脑上的jQuery如何在选择下拉列表中的选项后触发事件有关。
DAK我做错了什么?
答案 0 :(得分:0)
也许在change
上尝试onClick
:
$("#qty").change(function() {
/* use qty and unit price to get and display total price */
$("#price").val(parseFloat($("#qty").val() * unit_price).toFixed(2));
});
答案 1 :(得分:0)
如@adeneo所述,您应该将功能更改为:
$("#qty").change(function() {
/* use qty and unit price to get and display total price */
$("#price").val(parseFloat($("#qty").val() * unit_price).toFixed(2));
});