第一次显示后JQuery对话框无效

时间:2015-11-07 08:09:22

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

我在项目中使用JQuery对话框向用户显示餐厅菜单。 当用户设定食物数量时,它也会显示订单价格。所有这些都发生在对话中。所以用户接受它的命令并提交it.order表单是另一个php文件,它呈现为json并传递给包含对话框的div。一切都很好,第一次。但如果用户想要提交另一个订单则无效。不是ajax不提交表单或其他任何东西,用户必须重新加载页面到对话框再次正常工作。 这是我的对话框代码:

$('#dialog-modal').dialog({
      autoOpen: false,
      resizable: false,
      width:900,
      height:500,
      hide: function () {
        $(this).fadeOut();
      },
      show:  function () {
        $(this).fadeIn();
      },
      open: function() {
        $('#dialog-modal').empty();
        $.ajax('<?php echo url()?>/admin/preload',{
          dataType:'json',
          cache: false,
          success:function(data){
            $('#dialog-modal').html(data.content);
          }
        });
      }
    });

打开功能中的ajax正在加载餐厅的菜单。 这是我的提交按钮。有两个提交按钮,一个用于提交和关闭对话框,另一个用于提交,另一个用于提交对话框。

 $('#submit').on('click',function(){
  var data = $('#form').serialize();
  $.post('<?php echo url()?>/admin/add-food',data);
  $('#dialog-modal').dialog('close');
});
$('#newSubmit').on('click',function(){
  var data = $('#form').serialize();
  $.post('<?php echo url()?>/admin/add-food',data);
  $('#dialog-modal').dialog('close');
  $('#dialog-modal').dialog('open');
});

修改 如果我在关闭函数中销毁对话框,它在所有情况下都能正常工作,但在提交和新按钮中关闭对话框并且不打开新对话框

1 个答案:

答案 0 :(得分:0)

我认为,可能是你的动态按钮渲染。所以我们需要为该按钮添加事件监听器。以下代码。

$(document).on('click','#submit',function(){
  var data = $('#form').serialize();
  $.post('<?php echo url()?>/admin/add-food',data);
  $('#dialog-modal').dialog('close');
});
$(document).on('click','#newSubmit',function(){
  var data = $('#form').serialize();
  $.post('<?php echo url()?>/admin/add-food',data);
  $('#dialog-modal').dialog('close');
  $('#dialog-modal').dialog('open');
});