jQuery Selectable无法在IE或Chrome中运行

时间:2013-08-19 15:02:26

标签: javascript jquery jquery-ui-selectable

我有一个jQuery可选列表,它有一个句柄可以从一个列表中选择一个项目并将其放在另一个“选定”列表中。这在Firefox中运行良好,但在Chrome和IE中根本不起作用。我无法单击某个项目将其移动到所选列表。看看我在Firefox中的小提琴,它工作正常,然后在IE或Chrome中查看它,并注意它不再按预期工作。 (单击加号将列添加到所选列表中。)

jQuery代码移动到选定列表:

$(function () {
       $(".list")
       .find("li")
        .addClass("ui-corner-all")
        .prepend("<div class='handle'><span class='ui-icon ui-icon-plus'></span></div>")
       .selectable({
           handle: ".handle",
           stop: function () {
               var result = $("#select-result");

                $("ul li div").click(function () {
                    var index = $("ul li div").index(this);
                    var listLiText = $("ul.list li").eq(index).text();
                    var listLiID = $("ul.list li").eq(index).attr('id');

                    $("ul.list li").eq(index).css('background-color', '#669966');
                    $("ul.list li").eq(index).css('color', '#FFFFFF');

                    if ($("#select-result #" + listLiID).length == 0) {
                        result.append('<li id="' + listLiID + '">' + listLiText + '</li>');
                    }
                    sortColumns();
                });
           }
       });
   });

JS Fiddle(首先在FF中尝试在IE或Chrome中): http://jsfiddle.net/kmbonin82/NkgC2/17/

2 个答案:

答案 0 :(得分:0)

您的代码应在页面准备好后执行:

(function($) {
    $(document).ready(function() {
        // your code here
    });
})(jQuery);

答案 1 :(得分:0)

我发现了您的问题:在您已经“停止”可选择的点击事件后,您正在使用“点击”。停止可选择的点击后,您无法点击。如果您注释掉点击,如下所示,那么它会修复您的主要问题。然后,您需要将选择器从“ul li div”更改为“.list li”,因为您没有从“列表”中进行选择。

stop: function () {
    var result = $("#select-result");

    //$(".list li").click(function () {   -----------PROBLEM-----------
        var index = $(".list li").index(this);              //Changed to .list li
        var listLiText = $(".list li").eq(index).text();    //Changed to .list li
        var listLiID = $(".list li").eq(index).attr('id');  //Changed to .list li

        $(".list li").eq(index).css('background-color', '#669966'); //Changed to .list li
        $(".list li").eq(index).css('color', '#FFFFFF');    //Changed to .list li

        if ($("#select-result #" + listLiID).length == 0) {
            result.append('<li id="' + listLiID + '">' + listLiText + '</li>');
        }
        sortColumns();
    //});
}

您更新的JS小提琴:http://jsfiddle.net/NkgC2/30/