我正在尝试分离,然后根据外部函数返回的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();
}
}
答案 0 :(得分:1)
不要使用unbind
;改为使用“destroy”命令。
例如:
function abc(){
if (/* condition */) {
$(".container").accordion();
} else {
$(".container").accordion('destroy');
}
}
请参阅docs。根据您的具体情况,使用enable
和disable
命令可能更合适。
答案 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();
}
}