通过从正常点击事件提交帖子操作来阻止页面刷新

时间:2009-05-20 12:49:48

标签: jquery events click submit

我的问题是 我可以阻止从此代码刷新页面

正如您所看到的,我从正常的click_event提交了一个帖子操作,我需要它 因为live不支持提交事件。

jQuery('.verwijder').live('click', function() { 
    t=$(this);

    t.parents(".paneltbnote").animate({ opacity: 'hide' }, "slow",function(){
        t.parents(".wrappertbnote").remove();
        settbnotecounter();

        $db_tbnoteid = t.parents(1).children('.frmnoteid').val();

        $.post("tbnotesact.php", {
            noteid: $db_tbnoteid,
            actie: "verwijder",
            tijd: timestamp
        }, function(xml) {
            // hier nog iets doen
            berichtentoevoegen(xml);//feedback
        });//einde post methode

    });// einde callback animate methode

    return false;    
});//einde binding click event

3 个答案:

答案 0 :(得分:2)

试试这个:

替换第一行
jQuery('.verwijder').live('click', function(e) { t=$(this);

并替换     返回false; 与

e.preventDefault();

答案 1 :(得分:2)

您在点击事件中返回false,但不幸的是,它不会停止提交操作。如果你可以使用live事件监听器选择 not ,你可以随时使用bind()方法观察提交动作。

jQuery('.verwijder').bind('submit', function() {
    /* everything as usual... */
    return false;
});

当然,如果这不是一个选项,您可能只需要在代码中添加一些解除绑定的逻辑,然后重新绑定所有表单的提交操作以执行您想要的操作。

$(function() {
    bind_submits();
    // Let's pretend you have a link that adds forms to your page...
    $('#addForm').live('click', function() {
        add_form();
    });
});

function bind_submits() {
   // We need to unbind first to make we don't multi-bind 
   jQuery('.verwijder').unbind('submit').bind('submit', function() {
        /* everything as usual... */
        return false;
    });
}

function add_form() {
    /* do some stuff to add a form to your layout... */

    // Now reset all current 'submit' binds and add the new one...
    bind_submits();
}

这是在添加live()方法之前必须为所有事件侦听器做的事情(如果你当然没有使用livequery插件)。它的编码更多,维护起来更难,但目前我所知道的其他选项并不多。

快乐jQuerying ...

答案 2 :(得分:0)

很多时候,如果代码中出现错误,javascript永远不会完成函数,直到“返回false”;导致页面重新加载。暂时取消链接,看看是否有任何错误弹出。