如何附加和分离插件方法

时间:2011-05-16 11:28:42

标签: jquery jquery-plugins

我正在尝试分离,然后根据外部函数返回的true或false将jquery插件方法重新附加到div。使用unbind我可以从div中分离accordion()方法,但是我无法再次将accordion方法重新绑定到div。一旦执行了unbind方法,那么即使条件返回true,“$('。container')。accordion()”代码也不起作用。请建议解除插件方法解除绑定然后再绑定它的正确方法。

以下是供您参考的示例代码 -

HTML:

<div class="container" onmousedown="abc()">

使用Javascript:

function abc(){
  if (true) {
    $(".container").accordion();
  } else {   
    $(".container").unbind();
  }
}

3 个答案:

答案 0 :(得分:1)

不要使用unbind;改为使用“destroy”命令。

例如:

function abc(){
  if (/* condition */) {
    $(".container").accordion();
  } else {   
    $(".container").accordion('destroy');
  }
}

请参阅docs。根据您的具体情况,使用enabledisable命令可能更合适。

答案 1 :(得分:0)

这是因为一旦你取消绑定手风琴它没有那种方法......所以你需要再绑定它...你能做的就是每次都叫你的手风琴js ...

function abc(){
  if (true) {
    $.getScript("accordion.js", function(){
    alert("reinitialized");
    });
    $(".container").accordion();
  } else {   
    $(".container").unbind();
  }
}

答案 2 :(得分:0)

我没有直接回答,但似乎有了一个线索。

你应该检查,你的div中添加了什么类,然后你应用accordion()。 Firebug可以很容易地看到它。由于很清楚,代码将是

function abc(){
  if (!$(".container").hasClass('some_accordion_class')) {
    $(".container").accordion();
  } else {   
    $(".container").destroy();
  }
}