在平板电脑上选择<select>选项后,jQuery不会触发事件</select>

时间:2015-03-04 13:38:29

标签: jquery select tablet

我有一个简单的列表,其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我做错了什么?

2 个答案:

答案 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));
});