【问题标题】:update the unselectable value (jquery)更新不可选择的值(jquery)
【发布时间】:2013-10-29 02:47:17
【问题描述】:

我正在使用可选择的 jquery,我想在使用选择或取消选择项目后满足可选择的值。我的问题是,unselectable 的最后一个值不会更新。 完整代码在这里http://jsfiddle.net/duQH6/ 当我选择 Mon 和 Tue,然后我取消选择 Tue,值会更新,但是当我单击 Mon 时,值不会更新。请指教。

这是我的 jquery 代码

$(function() {
$("#selectday1").bind('mousedown', function (e) {
        e.metaKey = true;
}).selectable();
}); 

$('document').ready(function(){ 
$( "#selectday1" ).selectable({
    selected: function(event, ui) {
        var result=[];
        jQuery(".ui-selected", this).each(function() 
        {
        result.push(this.id);
        $("#days").val(result.join(','))
        });
    }
});
$( "#selectday1" ).selectable({
    unselected: function(event, ui) {
        var result=[];
        jQuery(".ui-selected", this).each(function() 
        {
        result.push(this.id);
        $("#days").val(result.join(','))
        });
    }
});
}); 

谢谢..

【问题讨论】:

    标签: javascript jquery selectable


    【解决方案1】:

    问题是,您正在更新 each 循环中的 days 值,因此当您取消选择最后一个元素时,循环回调永远不会执行,这就是它发生的原因。

    days 值应该在 each() 循环完成后更新。

    $(document).ready(function () {
        $("#selectday1").selectable({
            selected: function (event, ui) {
                var result = [];
                jQuery(".ui-selected", this).each(function () {
                    result.push(this.id);
                });
                $("#days").val(result.join(','))
            },
            unselected: function (event, ui) {
                var result = [];
                jQuery(".ui-selected", this).each(function () {
                    result.push(this.id);
                });
                $("#days").val(result.join(','))
            }
        });
    });
    

    演示:Fiddle

    但可以简化为

    jQuery(function ($) {
        function serialize(event, ui) {
            var result = $(this).find(".ui-selected").map(function () {
                return this.id;
            }).get();
            $("#days").val(result.join(','))
        }
    
        $("#selectday1").selectable({
            selected: serialize,
            unselected: serialize
        });
    });
    

    演示:Fiddle

    【讨论】:

    • 第一个答案对我来说更容易理解。 :) 无论如何谢谢。
    猜你喜欢
    • 2016-03-30
    • 2012-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-14
    • 2017-07-16
    • 2020-04-02
    • 1970-01-01
    相关资源
    最近更新 更多