【问题标题】:creating a jqueryui selectable causes Uncaught TypeError: Object [object Object] has no method 'selectable'创建一个 jqueryui 可选会导致 Uncaught TypeError: Object [object Object] has no method 'selectable'
【发布时间】:2013-06-14 14:17:48
【问题描述】:

我有一个 ul,我可以使用:

jQuery(".ul01").selectable({
    filter: "li",
    selected: this.li01Selected
});

显然,在“已选择”上,我调用了一个创建另一个可选择项的函数:

this.li01Selected = function(event, ui){
    jQuery(".ul02").selectable({
        ...

我的问题发生在 jQuery(".ul02").selectable({ 被调用时,我得到了

"Uncaught TypeError: Object [object Object] has no method 'selectable'"

我尝试过 var x = jQuery.noConflict() 的结果相同。 我检查了只导入了一个 jquery 和 jqueryui 库。

我只能猜测它与在 .selectable() 中调用 .selectable() 有关...

感谢收看。

【问题讨论】:

    标签: jquery jquery-ui selectable jquery-ui-selectable


    【解决方案1】:

    如果你没有包含 jQuery UI,或者你在它之后包含了一个不同的 jQuery 副本(这样新的 $ 没有插件),就会发生这种情况。

    【讨论】:

    • 那么为什么 .selectable() 会在第一个 ul01 上工作,但之后立即说“无方法”?
    【解决方案2】:

    检查是否有另一个库覆盖了$。据我所知prototype 也使用$。当你打电话时:

    $(".ul01").selectable({
        filter: "li",
        selected: this.li01Selected
    });
    

    $(".ul01").selectable() 立即执行。但是$(".ul02").selectable() 仅在您触发.ul01 上的事件时才会执行。在这两者之间,可能是另一个库或您自己的代码覆盖了$ 变量

    【讨论】:

    • ...我找到了一个包含更多 jquery.min.js 的地方。但我认为 var x = $.noConflict(); x("ul02").selectable({... 会解决这个问题...但它没有。
    • @user2282496:你必须像这样使用它var jq = jQuery.noConflict(); jq(".ul02").selectable(。这放弃了对 $ 的控制并使用另一个变量来保存它,因为 $ 将被您的 jquery.min.js 覆盖。但最好的方法是避免重新加载 jquery.min.js。
    • 嗨,Khanh,原来我无意中注入了另一个 jquery.min.js。我已经通过检查是否已经定义了 jQuery 并根据需要加载/未加载来停止注入这些 - 但没有成功(仍然错误)。还尝试了 var jd = ... 方法但没有成功...谢谢您
    • @user2282496:如果问题仍然存在,我认为除了jquery.min.js之外,还有其他脚本覆盖了$(例如prototype.js甚至你自己的代码)
    • 谢谢。我认为你是对的 - 我的程序中有另一个 jquery。但是我找不到它的来源(Chrome 和 Firefox 开发人员工具/资源/资源只显示加载的文件 - 而不是通过 Jquery.load() 加载的脚本)所以,为了让我的项目再次移动,我已经恢复使用简单的 click() 处理程序...如果我有任何进一步的发现,我将发布 bac。再次感谢。
    猜你喜欢
    • 1970-01-01
    • 2013-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多