jQM selectmenu data-native-menu =“false”运行两次

时间:2013-12-03 12:41:40

标签: javascript jquery jquery-mobile

我正在使用data-native-menu="false"

运行以下jQM 1.3.x / 1.4.x selectmenu
<div data-role="page" id="page">
    <div data-role="fieldcontain">
        <label for="selectbox">Basic:</label>
        <select name="selectbox" id="selectbox" data-native-menu="false">
            <option value="1">The 1st Option</option>
            <option value="2">The 2nd Option</option>
            <option value="3">The 3rd Option</option>
            <option value="4">The 4th Option</option>
        </select>
    </div>
</div>

并触发以下事件

$(document).on("pageinit", function () {
    $("#page").on("change", "#selectbox", function () {
        console.log(Date.now());
    });
});

然而,该事件被解雇了两次。 使用data-native-menu="true"一切正常。

我想这与selectmenu的弹出窗口有关。

演示在这里http://jsfiddle.net/qL8SP/

有解决方法吗?

感谢。

1 个答案:

答案 0 :(得分:0)

您将change事件绑定到任何页面,您必须将其绑定到#page。每当启动页面时,它都会触发pageinit,因此会将change事件绑定到#selectbox两次。

$(document).on("pageinit", "#page",function () {
  console.log(Date.now()); // will trigger one time only
  $("#selectbox").on("change", function () {
    console.log(Date.now()); // will trigger when you select a value
  });
});
  

<强> Demo