0

我对 preventDefault() 有疑问;我是这种用法的新手,在我的函数中,我将验证表单的错误保存在数组中并将其显示在模式窗口中,如果存在错误,我会取消链接上的操作,但我不知道如何删除此 preventDefault当我在“其他”时

谢谢

if(array.length != 0){
    //for cancel action on the link
    $('body').on('click','div.linkGet a',function(e){
        e.preventDefault(); 
    });
    //tranform the array in html and put it in the html
    $.colorbox({
        href:"../../tpl/validation-form.twig",
        width:450,
        onComplete:function(){
            $(array).each(function(index, item) {
                $("#wrapperValidationForm ul").append($("<li>").html(item));
                $.colorbox.resize();
            });                                                     
        }
    });
}
else{
    return true;
}
4

1 回答 1

1

当您使用 .on 函数时,您将事件处理程序(函数)绑定到事件(单击“a”元素),因此一旦绑定,每次触发事件时都会执行处理程序函数(防止默认操作)。我认为您需要在这里解除处理程序与事件的绑定,如下所示:

$('body div.linkGet a').unbind('click');

请注意,这将删除 click 事件的每个处理程序。你可能还想让你的选择器更整洁一些,例如:

$('div.linkGet').click(function(ev) {
   // stuff here
});

$('div.linkGet a').unbind('click');

因为我假设 div 位于文档的正文中。

于 2013-11-07T18:11:41.593 回答