jQuery Clean Confirm Dialog Idea - но onclick не вызывает новые функции onclick при вызове из eventHandler - PullRequest
0 голосов
/ 25 ноября 2011

Так как окно подтверждения jQuery выглядит потрясающе, я подумал, что нам нужно сделать его действительно полезным, сделав возможным его использование вместе со всеми другими событиями кликов и встроенными обработчиками без суеты и уродливых хаков, таких как перенаправление URL браузера.

Итак, я придумал эту РЕДАКТИРОВАТЬ новую версию jQuery подтверждает идею диалога для захвата событий щелчка, прежде чем onclick может сработать

Я полагаю, что при доступе к eventHandler изэтот объект уже поздно обновлять встроенные обработчики.Или есть способ?

Код:

    $(function(){
    $(".needsFancyConfirm").each(function(index, ele){
        ele=$(ele);
        ele._onclick=ele.attr("onclick");
        ele.attr("onclick", "return false;"); //preventDefault would do the same imho

        ele.bind("click.foo",function(){
            $("#dialog").dialog({
         bgiframe: true,
         height: 300,
         modal: true,
         buttons: {
              SubmitFormWithAllOldOnclickEvents: function() {
                    $(this).dialog('close');
                 ele.attr("onclick",ele._onclick);
                  ele.unbind("click", "click.foo");
                 console.info(ele.attr('onclick') + " <-- just to make sure what is written in Onclick, now we will execute it");
                  console.info($("#coolIdea")[0].onclick() + " <-- this returns false - it should return the set old onclick e.g. alert Wow u managed to execute me");
              }
         }


         });
        });
});
});

1 Ответ

0 голосов
/ 28 декабря 2011

Так что я думаю, что это в основном проблема курицы и яйца.

В настоящее время мы фиксируем событие, и нет способа изменить обработчики событий, поскольку они уже были прочитаны.

...