为什么数据(“可选”)返回“未定义”?

时间:2013-06-08 17:02:30

标签: jquery selectable

我按照以下问题实施“全选”功能: How to programmatically select selectables with jQuery UI?

select all按钮完美地工作到._mouseStop命令,然后它只是吐出错误:

Uncaught TypeError: Cannot call method '_mouseStop' of undefined 

以下是代码的相关部分:

第1步:此页面上有四个列表,其中四个都使用了可选择的插件

//Make all four lists selectable
$("#selectNewTweets").selectable();
$("#selectApprovedTweets").selectable();
$("#selectDeclinedTweets").selectable();
$("#selectUndecidedTweets").selectable();

步骤2:批量注册所有“全选”按钮(每个列表一个)

//click a "Select All" button
$("[id^=btnSelectAll]").click(function(e){
    var id = $(this).attr('id');
    var list = id.substring(
        "btnSelectAll".length,
        id.length);
    //select all elements in target list
    $("#select"+list+"Tweets > li").each(function(index){
        $(this).removeClass('ui-selected');
        $(this).addClass("ui-selecting");
    });

    $("#select"+list+"Tweets").data("selectable")._mouseStop(null);
});

当我单击任何“全选”按钮时,所有内部元素都会获得“ui-selecting”类,因此.each()语句可以正常工作。但是,一旦它到达._mouseStop()行,它就会抛出我上面提到的异常。

任何想法导致异常?

1 个答案:

答案 0 :(得分:2)

如果您注意到所引用的StackOverflow问题的所选答案的this comment,则表示对于jQuery UI库的更高版本,您应该使用.data("ui-selectable")而不是.data("selectable")。希望这是你得到错误的原因,因为我发现你的代码没有其他错误。