выгрузите ajax при закрытии диалогового окна jquery ui - PullRequest
0 голосов
/ 26 февраля 2012

Я использую эту технику для загрузки ajax в диалог jqueryui

методика загрузки AJAX

отлично работает

кроме одного этого с моим в моей реализации

У меня есть расчет, который я поместил в «полный» раздел ...

options.complete = function(){
$("#quantity").bind("keyup",
                        function () {
                            var sum = 0;
                             price = $('#price').val();
                             qty =   $('#quantity').val();
                             sum = price*qty;

                            $('.total').text(sum);
 });        
}

Это прекрасно работает при первой загрузке каждый раз. Если я обновляю, это работает как шарм.

Я даже попробовал живой метод.

как это ....

options.complete = function(){
 $("#quantity").live("keyup",
                        function () {
                            var sum = 0;
                             price = $('#price').val();
                             qty =   $('#quantity').val();
                             sum = price*qty;

                            $('.total').text(sum);
 });        
}

используя метод live, я получаю интересную информацию, если предупреждаю о предупреждении («здесь») в верхней части функции.

каждый раз, когда я открываю и закрываю диалоговое окно и меняю число в количестве, я получаю столько предупреждений, сколько раз я открывал и закрывал диалоговое окно

т.е.: открыть и закрыть диалоговое окно 3 раза, и я получаю 3 предупреждения .... открыть его 5 раз, я получить 5 предупреждений и т. Д. И т. Д.

мне нужно знать, есть ли способ полностью выгрузить ajax из DOM с помощью диалогового окна jquery ui beforeClose: метод.

Заранее спасибо.

Scott

oops forgot to put this in as well...

  "Cancel": function() {
            $(this).dialog("destroy");   
                            }   

тоже не работает.

Ответы [ 2 ]

1 голос
/ 26 февраля 2012

Если вы используете метод делегирования, такой как live (), вызывайте его вне других обработчиков событий, чтобы он не связывался повторно, когда другие события происходят более одного раза. Live даже не нужно вызывать внутри $ (document) .ready (), поскольку он делегирован документу.

0 голосов
/ 26 февраля 2012

Похоже, вам нужно destroy() диалоговое окно после его закрытия.

...