我有一个锚点,当点击它时会进行ajax调用,将一些html加载到div中然后加载一个脚本。我想在第一次点击后取消绑定该事件,并将其替换为在显示和隐藏该div之间切换的另一个点击事件。我已经做到这一点,但我没有尝试注册切换div工作的点击事件。
$('#anchor').click( function() {
$('#div').load('file.html', function() {
$.getScript('script.js');
$('#anchor').unbind();
});
});
答案 0 :(得分:2)
$('#anchor').click( function(e) {
e.preventDefault(); // prevent the browsers following the link
$('#div').load('file.html', function() {
// make sure to bind once the new script has been included
// i.e. within .getScript's callback
$.getScript('script.js', function() {
$('#anchor').unbind("click").click(myShowHideFunc);
});
});
});
答案 1 :(得分:1)
尝试使用事件名称空间,这有助于仅取消绑定当前事件处理程序,以便在我们解除绑定时不会触及其他点击处理程序。
$('#anchor').click('click.anchor', function() {
$('#div').load('file.html', function() {
$.getScript('script.js', function(){
$('#anchor').unbind('click.anchor').click(function(){
$('#div').toggle();
});
});
});
});