запретить обновление страницы, отправив сообщение с обычным кликом - PullRequest
0 голосов
/ 20 мая 2009

мой вопрос Могу ли я предотвратить обновление страницы с помощью этого кода

Как видите, я отправляю сообщение с обычным 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 ]

2 голосов
/ 20 мая 2009

Вы возвращаете false в событии click, но, к сожалению, оно не остановит действие отправки. Если у вас есть опция , а не с использованием прослушивателя событий в реальном времени, вы всегда можете просто наблюдать действие отправки с помощью метода 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). Его сложнее кодировать и сложнее поддерживать, но на данный момент у меня не так много других вариантов, о которых я знаю.

Happy jQuerying ...

2 голосов
/ 20 мая 2009

попробуйте это:

заменить первую строку на

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

и заменить вернуть ложь; с

e.preventDefault();
0 голосов
/ 20 мая 2009

Много раз, если в коде есть ошибка, javascript никогда не завершает функцию до «return false; в результате перезагрузки страницы. Отключите ссылку и посмотрите, не появятся ли какие-либо ошибки.

...