【问题标题】:how to prevent page reload or page refresh after clicking jquery dialog close button单击jquery对话框关闭按钮后如何防止页面重新加载或页面刷新
【发布时间】:2017-02-07 20:52:22
【问题描述】:

关闭对话框时,整个页面会刷新。我该如何避免?请参阅下面的代码:

// delete button  
<a id="confirmDelete" class="button orange" href="#"     onclick="goDelete(this);">Delete</a>  

// function goDelete that opens a dialog.  
function goDelete(a) {
    var id = a.closest("[data-id]").getAttribute("data-id");
    var url = window.location.origin + "/nurse_notes/delete_confirm.jsf?visitId=" + id;
    //Create a Div, then append a new iframe inside of it
    var dialog = $('<div>').append($('<iframe>').attr('src', url).css({"height":"300","width":"500"}));
    $(dialog).dialog({
        autoOpen: true,//Means open this now
        title: "Delete Confirmation",
        width: 550,
        height: 375,
        modal: true,
        position: {my: "center", at: "center",of: "body"}
    });
}  

问题是,当我单击对话框中的删除或取消按钮时,它会刷新页面。如何在此处停止页面刷新?

HTML 取消 我正在做这样的事情,但它仍然刷新页面:(

我对 jquery 很陌生,正在寻找关于我哪里出错的输入/反馈。谢谢!

【问题讨论】:

  • 欢迎来到 Stack Overflow。我怀疑某些东西正在产生错误,请检查您的控制台。这也不是一个非常完整的例子。总体而言,删除确认对话框似乎有点矫枉过正。

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


【解决方案1】:

这是一种可行的方法。

示例:http://jsfiddle.net/Twisty/6ty8hj99/

HTML

<ul>
  <li data-id="1">Item 1 <a id="confDel-1" class="button orange" href="#">Delete</a></li>
  <li data-id="2">Item 2 <a id="confDel-2" class="button orange" href="#">Delete</a></li>
  <li data-id="3">Item 3 <a id="confDel-3" class="button orange" href="#">Delete</a></li>
  <li data-id="4">Item 4 <a id="confDel-4" class="button orange" href="#">Delete</a></li>
  <li data-id="5">Item 5 <a id="confDel-5" class="button orange" href="#">Delete</a></li>
</ul>

JavaScript

function goDelete(a) {
  var id = $(a).parent().data("id");
  var url = var url = window.location.origin + "/nurse_notes/delete_confirm.jsf?visitId=" + id;
  console.log("Delete Confirm: " + url);

  var $diag = $("<div>").dialog({
    modal: true,
    width: 550,
    height: 375,
    title: "Delete Confirmation",
    position: {
      of: "body"
    },
    close: function() {
      $(this).dialog("destroy");
    }
  });
  var $frame = $("<iframe>").attr("src", url).css({
    width: 500,
    height: 300
  });
  $diag.append($frame);
}

$(function() {
  $(".button").button();
  $("a[id^='confDel']").click(function(e) {
    e.preventDefault();
    console.log("Click Event triggered by #" + $(this).attr("id"));
    goDelete(this);
  });
});

希望对您有所帮助。

【讨论】:

  • 感谢您的回复。所以现在当我点击对话框右上角的 X 时,它会刷新页面。但是当我单击对话框中的删除或取消按钮时,它会刷新页面。如何在此处停止页面刷新?还有
  • 感谢您的回复。所以现在当我点击对话框右上角的 X 时,它不会刷新页面。但是当我单击对话框中的删除或取消按钮时,它会刷新页面。如何在此处停止页面刷新? HTML Cancel 我正在做这样的事情,但它仍然刷新页面:(
  • @Vandana 我怀疑这是由于 javascript 代码未添加到 DOM 或存在其他问题。由于内容是通过iframe 加载的,因此很难知道。删除和取消按钮是在您当前的代码中生成的还是由 MVC 页面生成的?
猜你喜欢
  • 2017-10-03
  • 2013-10-13
  • 2012-12-09
  • 2021-03-01
  • 1970-01-01
  • 2017-12-13
  • 1970-01-01
  • 2012-03-21
  • 2019-10-26
相关资源
最近更新 更多