使用jquery选择过早触发OnChange事件

时间:2014-10-16 09:04:21

标签: javascript jquery onchange jquery-chosen

我正在使用" Multiple Select"来自jquery-chosen(http://harvesthq.github.io/chosen/)。我有一个函数,只要有这个选择的更改(例如,选择了一个新选项或删除了一个选项),就必须调用该函数:

function getMultiselectVal(){
    var value = $('.chosen-choices').text();
    alert(value);
}

我的firebug的html代码如下所示:

<div id="Q2_chosen" class="chosen-container chosen-container-multi chosen-with-drop chosen-container-active" style="width: 350px;" title="">

    <ul class="chosen-choices">
        <li class="search-choice"></li>
        <li class="search-field" onchange="getMultiselectVal();"></li>
    </ul>
    <div class="chosen-drop"></div>
</div>

添加项目时效果很好。我点击下拉列表,选择我要添加的值(例如&#34;英国&#34;),添加值,现在我的函数被调用。

但是在移除项目时这不起作用。如果我点击&#34; x&#34;删除该项目,我的函数立即被调用(这是坏的),该项目保留在列表中,直到我的功能完成。

实施例: 该列表为空。我现在添加&#34;英国&#34;。我的功能警告&#34; UnitedKingdom&#34;。我现在添加&#34;德国&#34;,我的功能提醒&#34; UnitedKingdomGermany&#34;。我现在删除了UnitedKingdom,我的功能警报&#34; UnitedKingdomGermany&#34; (因为该项目仅在该功能之后被删除。)

所以在我看来: a)onChange过早被调用。 b)这是同步的,而不是异步的。如果它是异步的,我的功能将不会停止&#34;删除过程&#34;。

0 个答案:

没有答案