jul*_*mme 5 javascript jquery jquery-ui colorbox
我正在使用jquery-ui它,它的dialog功能是在我的网络应用程序中显示模态对话框.它工作正常.
在一个用例中,我colorbox在屏幕上有一个弹出窗口,一旦用户完成输入,我需要显示一个确认对话框.
此外,由于我尝试的所有主要浏览器上的错误处理,一切实际上都有效,但我担心javascript引擎和浏览器的某些组合可能会导致什么问题.
我得到的错误是调用堆栈大小溢出(Chrome将其显示为Uncaught RangeError: Maximum call stack size exceeded.).
模态对话框的代码是:
function modalDialog(dialogText, dialogTitle, okFunc, okLabel, cancelFunc, cancelLabel) {
var dialogButtons = {};
dialogButtons[okLabel] = function() {
if (typeof(okFunc) == 'function') {
setTimeout(okFunc, 50);
}
$(this).dialog('destroy');
};
dialogButtons[cancelLabel] = function() {
if (typeof(cancelFunc) == 'function') {
setTimeout(cancelFunc, 50);
}
$(this).dialog('destroy');
};
$('<div style="padding: 10px; max-width: 500px; word-wrap: break-word;">' + dialogText + '</div>').dialog({
draggable: true,
modal: true,
resizable: false,
width: 'auto',
title: dialogTitle || 'Confirm',
minHeight: 75,
buttons: dialogButtons
});
Run Code Online (Sandbox Code Playgroud)
}
colorbox在javascript中调用,它div从实际页面嵌入,因为它是内容:
$(function() {
$(".colorbox-load").colorbox({
inline: true,
overlayClose: false,
href: "#popupContents",
height: "320",
width: "300"
});
})
Run Code Online (Sandbox Code Playgroud)
在弹出窗口中,我有一个按钮,只需打开确认对话框.
我提前道歉,因为这是我第一次使用JSFiddle,而且我无法让colorbox和对话框弹出窗口完全匹配它在我的页面上的样子(它实际上在彩盒顶部正确弹出而不是"在后台" ).我不确定这是不是因为我不得不使用不同版本的jquery和jquery-ui(我找不到我在下拉时使用的相同组合)或其他东西.
一个JSFiddle在这里.如果在按下"打开对话框"按钮后单击颜色框区域,则应该会出现相同的错误(firefox和Chrome似乎在显示错误时的反应略有不同).
谢谢你的任何建议!
小智 5
似乎Dialog和Colorbox正在争夺焦点。将trapFocus设置设置为false将解决此问题。当然,根据您的使用方式,它可能会对您的页面产生一些副作用。有关详细信息,请查阅官方文档。
$(function() {
$(".colorbox-load").colorbox({
inline: true,
overlayClose: false,
href: "#popupContents",
height: "320",
width: "300",
trapFocus: false
});
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
811 次 |
| 最近记录: |