jquery selectable手动调用事件

时间:2015-06-11 19:16:35

标签: javascript jquery javascript-events jquery-ui-selectable

我有一些jquery可选对象。默认选择该对象的某些项,所以我有这样的东西:

HTML

<ol id='lunedi'>
    <li class='ui-state-default ui-selected' id='lunedi-1'>1</li>
    <li class='ui-state-default' id='lunedi-2'>2</li>
    <li class='ui-state-default' id='lunedi-3'>3</li>
    <li class='ui-state-default ui-selected' id='lunedi-4'>4</li>
<ol id='martedi'>
    <li class='ui-state-default ui-selected' id='martedi-1'>1</li>
    <li class='ui-state-default ui-selected' id='martedi-2'>2</li>
    <li class='ui-state-default' id='martedi-3'>3</li>
    <li class='ui-state-default' id='martedi-4'>4</li>

JS

// multiple selection
$(function() {
    //$("#lunedi").selectable();
    $("#lunedi").bind("mousedown", function(e) {
        e.metaKey = true;
    }).selectable();
});

// code for serialization
$(function() {
    $("#lunedi").selectable({
        stop: function() {
            var result = $("#result-lunedi").empty();
            $(".ui-selected", this).each(function() {
                //var index = $( "#lunedi li" ).index( this );
                var index = $(this).attr('id');
                result.append("#" + index);
            });
        }
    });
});

我想序列化已检查的项目,但只有当我至少将选择状态修改为<ol>的其中一项时,它才能正常工作。

我认为这是因为只在事件“停止”期间调用javascript,所以如果我不选择/取消选择任何内容,序列化代码将不会执行。

解决方案应该是手动调用停止例程,或者在处理数据之前对项目执行双切换(为了在不更改值的情况下序列化结果),但我真的很困惑如何执行此操作

祝你今天愉快, 弗朗西斯

1 个答案:

答案 0 :(得分:-1)

在创建

上使用相同的序列化功能
// code for serialization
$(function() {
    var updateResult = function () {
        var result = $("#result-lunedi").empty();
        $(".ui-selected", this).each(function() {
            //var index = $( "#lunedi li" ).index( this );
            var index = $(this).attr('id');
            result.append("#" + index);
        });
    };
    $("#lunedi").selectable({
        create: updateResult,
        stop: updateResult
    });
});
相关问题