如何取消手风琴控件的更改事件

时间:2010-12-01 11:18:49

标签: javascript jquery jquery-ui accordion jquery-ui-accordion

$("#accordion").accordion({
    change: function (event, ui) {
        alert('event have to be changed')
    },
    changestart: function (event, ui) {
       return false;
    }
});

是否可以取消更改事件?

6 个答案:

答案 0 :(得分:3)

我不确定更改但是对于jqueryui中的其他事件返回false会取消该事件。

答案 1 :(得分:3)

stopPropagation()是停止处理jQueryUI操作的关键,但必须在changestart事件之前中断。例如,实际点击标题项时。

如果这是手风琴中的标题/内容对:

<h3 class='noexpand'>This is a dummy header</h3>
<div>This is dummy content</div>

然后这会阻止手风琴在单击标题时展开div:

$("h3.noexpand").click(function(e) {
    e.stopPropagation();
});

请参阅jquery accordion prevent bubbling / allow default link action

答案 2 :(得分:2)

正如马丁所说,你可以归还假。请参阅下面的代码示例。

...
eventname: function( event, ui ) {
    // Add your code here
    ...

    return false;
}

答案 3 :(得分:1)

event.preventDefault();
event.stopPropagate();

答案 4 :(得分:0)

返回false不执行任何操作,要取消jQueryUI中的事件,您需要在事件上调用preventDefault()。

$("#accordion").accordion({
    changestart: function (event, ui) {
       event.preventDefault();
    }
});

这适用于所有事件方法,包括自动完成。如果您希望在自动完成菜单中包含一些您希望某人选择但实际上并不想添加到它所依赖的输入的自定义选项,则会很方便。 :)

答案 5 :(得分:0)

对我有用的是:

function onChange(e, ui) {
    e.preventDefault();
    e.stopPropagation();
}

在函数末尾返回false具有相同的效果,因为它相当于进行这两个函数调用。