【问题标题】:unload ajax when just closing a jquery ui dialog仅关闭 jquery ui 对话框时卸载 ajax
【发布时间】:2012-02-26 10:50:52
【问题描述】:

我正在使用这种技术将 ajax 加载到 jqueryui 对话框中

load ajax dialog technique

效果很好

除了我在我的实现中的一个

我已经在“完整”部分进行了计算...

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

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

每次第一次加载时效果都很好。如果我刷新它就像一个魅力。

我什至尝试了live方法。

像这样……

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

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

使用 live 方法,如果我在函数顶部发出警报('here'),我会得到一些有趣的东西。

每次我打开和关闭对话框并更改数量时,我都会收到与我打开和关闭对话框的次数一样多的警报

即:打开和关闭对话框 3 次,我得到 3 个警报....打开它 5 次,我得到 5 个警报等等。

我需要知道的是,是否有办法使用 jquery ui 对话框 beforeClose: 方法从 DOM 中完全卸载 ajax。

提前致谢。

斯科特

oops forgot to put this in as well...

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

也不行。

【问题讨论】:

    标签: jquery jquery-ui jquery-ui-dialog


    【解决方案1】:

    如果您使用像 live() 这样的委托方法,请在其他事件处理程序之外调用它,这样当您的其他事件多次发生时,它就不会被重复绑定。 Live 甚至不需要在 $(document).ready() 中调用,因为它被委托给了文档。

    【讨论】:

    • 非常感谢。就是这样。这让我快疯了
    【解决方案2】:

    听起来你需要在关闭对话框后destroy()

    【讨论】:

    • 谢谢你,但我也试过了......我已经编辑了帖子以反映附加到“取消”按钮的内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-14
    • 1970-01-01
    • 2022-01-12
    • 1970-01-01
    • 2011-05-22
    相关资源
    最近更新 更多