Исключая клики в DIV из окна. - PullRequest
2 голосов
/ 18 апреля 2010

С учетом следующей функции:

window.onbeforeunload= function() {
    if (CKEDITOR.instances.stuff.getData().length > 0 && oktoquit == false) {
        return "You have unsaved changes. Click Cancel now, then 'Save' to save them. Click OK now to discard them.";
    }
};

Я бы хотел, чтобы эта функция не запускалась, если пользователь щелкает ссылку в div с идентификатором:

<div id="ignore me"><a href="">blah</a><a href="">blah</a><a href="">blah</a></div>

Есть идеи?

** Обновление Оказывается, следующий код для поиска по сайту вызывает проблему. но почему?

$("#searchresults li").live('click', function(e) {
    if (e.target.nodeName != "a") {
        window.location = $(this).find('a').attr('href');
    }
});

Ответы [ 2 ]

1 голос
/ 18 апреля 2010

Вы можете сделать это:

$("#ignoreMe").click(function() {
  window.onbeforeunload = null;
});

Я изменил ваш идентификатор на ignoreMe, поэтому он действителен, но вы поняли :) Судя по вашему вопросу, вы можете выбрать #ignoreMe a для селектора, если вы хотите исключить какие-либо ссылки внутри этого div из выполнения обработчик, что вы хотите, просто используйте этот селектор.

0 голосов
/ 18 апреля 2010

window.top.onbeforeunload это игнорирует CKEDITOR iFrame, который выполняет работу

...