jQuery模态对话框没有显示屏幕中心,我必须向下滚动

时间:2016-08-03 14:37:09

标签: jquery

我不知道为什么我遇到这个特殊的jQuery Modal有问题。我在表格的每一行旁边都有链接。当用户单击它时,我会出现一个模态对话框,以确认他是否要删除所选行。当表格很长时,屏幕会滚动到顶部,然后用户必须向下滚动到行确认的位置。

为什么模态不会直接放在现有屏幕的顶部中心,同时保持滚动位置?

<a href="#" onclick='@string.Format("ConfirmCancelReadyToRun(this, 
'{0}','{1}','{2}')", item.VendorId, item.RunYearMonth, string.Format("{0:yyyy/MMM}", item.RunYearMonth))'>Cancel</a>

脚本:

function ConfirmCancelReadyToRun(link, vendorId, runYearMonthDate, runYearMonthDisplay) {

    var $myDialog = $("<div></div>")
           .html("Are you sure that you want to Cancel the Ready to Run for Vendor ID " + vendorId + " on " + runYearMonthDisplay + "?")
           .dialog({
               modal: true,
               autoOpen: false,
               title: "Confirm Cancel",
               my: "center",
               at: "center",
               of: window,
               buttons: {
                   "Cancel": function () {
                       $(this).dialog("close");
                       return false;
                   },
                   "OK": function () {
                       $(this).dialog("close");
                       var form = $(link).parents("form:first");
                       var actionString = encodeURI(CorrectUrl("/ReadyToRun/CancelReadyToRun?vendorId=" + vendorId + "&runYearMonthDate=" + runYearMonthDate));
                       form.attr("action", actionString);
                       form[0].submit();
                       return true;
                   }
               }
           });

    $myDialog.dialog('open');
}

2 个答案:

答案 0 :(得分:1)

它滚动到屏幕顶部的原因是因为你的锚标签引用空书签href,即href="#"如果你做了一个假的链接&#34;看起来像链接,但实际上是一个跨度或div,所有悬停在css中的样式等,然后你可以点击启动对话框,而无需href链接到任何地方。

我还建议使用类和$('.classname').on('click', function(){});语法绑定到jQuery中元素的click事件,并将参数存储在data属性中的元素上。然后,您可以在$(this).data()

的函数体中解除这些问题

答案 1 :(得分:0)

尝试在fullPath = [bundlePath stringByAppendingPathComponent:filepath];

中设置position
.dialog