【问题标题】:jQuery dialog box does not closejQuery 对话框不关闭
【发布时间】:2012-07-24 15:56:42
【问题描述】:

这是我的对话框 jquery

</script>
<script type="text/javascript">
    $.ajaxSetup({ cache: false });
    $(document).ready(function () {
        $(".openDialog").live("click", function (e) {
            e.preventDefault();
            $("<div></div>")
            .addClass("dialog")
            .attr("id", $(this)
                .attr("data-dialog-id"))
            .appendTo("body")
            .dialog({
                title: $(this).attr("data-dialog-title"),
                minWidth: 200,
                minHeight: 100,
                resizable: false,
                close: function () { $(this).remove() },
                modal: true
//                        buttons:{ 
//                            close:function(e){
//                               e.preventdefault();
//                               $(this).closest(".dialog").dialog("close"); 
//                            }}
            })
            .load(this.href);
        });
        $(".close").live("click", function (e) {
            e.preventDefault();                  
            $(this).closest(".dialog").dialog("close");
        });
        $(".refresh").live("click", function (e) {
            e.preventDefault();
            location.reload();
        });
    });          
</script>

这是我的删除视图

@using (Html.BeginForm()) {
    <div>
    <p>Are you sure you want to delete?</p>
       @Html.HiddenFor(model=>model.UId)
   <table border=0>
    <tr>
   <td>Name:</td>
    <td>@Html.DisplayFor(model =>model.FName)
    @Html.DisplayFor(model => model.LName)</td>
    </tr>
    <tr>
    <td>PAddress:</td>
    <td>@Html.DisplayFor(model => model.PAddress)</td>                                        

    </tr>
    </table>
     <input type="submit" value="Yes"/>
    <button  class="close">No</button>


 </div>
}

问题是当我从按钮调用关闭类时,对话框没有关闭。但是当我删除 preventDefault 时,对话框关闭。任何帮助请为什么对话框没有关闭。

【问题讨论】:

    标签: javascript jquery-ui jquery


    【解决方案1】:
    $(".close").live("click", function (e) { 
        e.preventDefault();                   
        $('#yourdivId').closest(".dialog").dialog("close"); 
    }); 
    

    试试这个...

    【讨论】:

      【解决方案2】:

      你可以试试这个

      $(".close").live("click", function (e) {
                      e.preventDefault();                  
                      $(this).closest(".dialog").dialog("close");
                  });
      

      把这段代码放在

      $(document).ready(function () {
      

      这可能对你有用...

      【讨论】:

      • 自 1.7 起 .live() 已弃用,建议改用 .on()
      • 我尝试将它也放入删除 veiw 并调用它但不工作。当我穿上()。 e.preventDefault 操作不起作用,即数据被删除。
      【解决方案3】:

      这里你不需要使用 preventDefault() 函数。 preventDefault() 用于防止事件的不需要的默认操作。

      例如,当您单击一个链接时,它会将您重定向到另一个页面。如果您希望该链接执行其他操作,则需要防止默认并编写您的操作。

      由于此按钮没有默认操作(使用“type”属性定义),因此您无需使用 preventDefault()。

      【讨论】:

      • 当我没有点击按钮时,我需要停止删除操作。我不知道没有 preventDefault() 怎么办。你能用代码解释一下吗
      • 由于这个 按钮不是提交按钮,所以当您单击该按钮时,您的表单不应提交。如果发生这种情况,您可以将该按钮放在表单之外,如我在第二个答案中所示。
      【解决方案4】:

      首先将$.ajaxSetup({ cache: false }); 放入文档就绪函数中。

      【讨论】:

      • 正如您在上面看到的那样,它已经在那里不知道它做了什么但不起作用
      【解决方案5】:

      您可以像这样更改删除视图。

      <div>
      @using (Html.BeginForm()) {
         <p>Are you sure you want to delete?</p>
             @Html.HiddenFor(model=>model.UId)
         <table border=0>
          <tr>
         <td>Name:</td>
          <td>@Html.DisplayFor(model =>model.FName)
          @Html.DisplayFor(model => model.LName)</td>
          </tr>
          <tr>
          <td>PAddress:</td>
          <td>@Html.DisplayFor(model => model.PAddress)</td>                                        
      
          </tr>
          </table>
           <input type="submit" value="Yes"/>
      }
      <button  class="close">No</button>
      </div>
      

      【讨论】:

        【解决方案6】:
         $(".ui-dialog").hide();
            $(".ui-widget-overlay").hide();
        

        【讨论】:

        • 您好,问题是为什么盒子没有关闭。手动隐藏消息框很简单。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-11-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-19
        • 2017-06-29
        相关资源
        最近更新 更多