如何删除绑定到click事件的任何jQuery操作?

时间:2016-04-07 14:11:12

标签: javascript jquery

在我的wordpress网站上,我有一个由安装的插件管理的日历页面,其中包含一些基本链接<a class="mylink" href="http://myurl.com">Some text</a>

在该插件的某个地方有一些Javascript代码,一旦用户点击其中一个链接就会触发AJAX调用。好吧,我不希望这种情况发生。当然,我不想编辑插件核心文件。

我想要做的是简单地创建一个脚本,删除绑定到这些链接的任何操作,这样一旦用户点击其中一个链接,就不会发生任何事情。 所以,我尝试使用jQuery方法preventDefault()stopPropagation()stopImmediatePropagation(),但都没有。

jQuery(document).on('click','.mylink', function(event){
    event.preventDefault();
    event.stopImmediatePropagation();
    event.stopPropagation();
    //do the stuff i want here
});

我缺少什么?

2 个答案:

答案 0 :(得分:2)

很像Clear()函数可用于连接事件,您可以使用off()函数删除事件处理程序:

CREATE TABLE IF NOT EXISTS entries(
subject_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
subject_name VARCHAR(30) NOT NULL,
level_of_entry VARCHAR(10) NOT NULL,
exam_board VARCHAR(10) NOT NULL,
date_of_exam DATETIME NOT NULL,
PRIMARY KEY (date_of_exam),
FOREIGN KEY (subject_id) REFERENCES subjects(subject_id),
FOREIGN KEY (subject_name) REFERENCES subjects(subject_name),
FOREIGN KEY (level_of_entry) REFERENCES subjects(level_of_entry),
FOREIGN KEY (exam_board) REFERENCES subjects(exam_board)
);

您只需要确保在创建初始事件处理程序后执行此操作。

答案 1 :(得分:1)

在您的代码中,您只需为click事件添加另一个处理程序,而不是替换原始处理程序。您需要取消绑定这些链接上的点击事件。执行此操作的代码:

jQuery('a.mylink').unbind('click')