到目前为止,我的代码是:
function behaviourAdd (){
$.ajax({
url: base_url + "folders/jq_set_folder_as_behaviour/add/" + $("a#behaviour").data("folder"),
success: function () {
$('a#behaviour')
.addClass('active')
.attr('title', "Remove a Behaviour")
.unbind('click')
.bind('click', behaviourRemove);
}
});
}
function behaviourRemove (){
$.ajax({
url: base_url + "folders/jq_set_folder_as_behaviour/remove/" + $("a#behaviour").data("folder"),
success: function () {
$('a#behaviour')
.removeClass('active')
.attr('title', "Add a Behaviour")
.unbind('click')
.bind('click', behaviourAdd);
}
});
}
if($('a#behaviour').hasClass('active') == true) {
$('a#behaviour').bind('click', behaviourRemove);
} else {
$('a#behaviour').bind('click', behaviourAdd);
}
所有这些都完美无缺。但是,我试图阻止默认的点击行为,但我尝试过的一切都失败了。
经过多次搜索,我能找到的唯一上下文是:
$("a#behaviour").click(function(event){
event.preventDefault();
});
这不适用于我,因为我使用的是命名函数,我认为这是它不起作用的原因。
虽然我能够传递事件数据:
$('a#behaviour').bind('click', behaviourRemove(event));
在任一函数中使用它时都会出现错误:
function behaviourAdd (e){
e.preventDefault();
...
}
因此,欢迎任何帮助。