我是jQuery的新手。我正在创建一个asp.net MVC应用程序。
当用户使用以下代码点击按钮时,我正在显示一个对话框。
$(document).ready(function () {
$dialog = $("#quantityDialog").dialog({
autoOpen: false,
title: 'Add to Cart',
});
$('.AddToCart').on('click', function () {
$dialog.dialog('open');
});
});
HTML:
<div id="quantityDialog" style="display:none">
...
</div>
对话框工作正常。
我怎样才能做到这一点。帮助我。
答案 0 :(得分:0)
$("#loadPreviewDiv").click(function () {
$('#dialog').dialog({
title: "Dialog box",
height: 300,
modal: true,
open: function() {
$('.ui-widget-overlay').on('click', function() {
$('#dialog').dialog('close');
})
},
buttons: { "close": function() { $(this).dialog("close"); } }
});
});
演示:
答案 1 :(得分:0)
您可以使用对话框的modal
属性来实现背景叠加,
$("#dialog").dialog({
autoOpen: false,
modal: true,
.....
});
要关闭overlay
,您可以绑定.ui-widget-overlay
对话框中的open
::
$("#dialog").dialog({
......
open: function(){
$('.ui-widget-overlay').on('click',function(){
$('#dialog').dialog('close');
});
....
}
答案 2 :(得分:0)
这是您的解决方案,
点击其他区域
在这里你可以添加一个dom与其他区域重叠
<div class="overlay"></div>
为这个dom编写css
.overlay {
display: none;
position: fixed;
width: 100%;
height: 100%;
top: 0;
left: 0;
opacity: 0;
z-index: 1;
}
当您打开弹出窗口时,只需写下此内容即可显示此叠加层。
$('.overlay').show();
注意:确保弹出式z-index大于叠加层。
点击外面的弹出窗口
$('body').click(function(e){
if(!$(e.target).is('.AddToCart, #quantityDialog'))
{
// write logic to close the popup here
$('.overlay').hide();
}
})
答案 3 :(得分:0)
<强> DEMO 强>
JS代码:
$(document).ready(function () {
$dialog = $("#quantityDialog").dialog({
autoOpen: false,
modal:true,//to display an overlay
title: 'Add to Cart',
});
$('.AddToCart').on('click', function () {
$dialog.dialog('open');
});
/*When clicked on overlay close the dailog*/
$('div.ui-widget-overlay').click(function(){
$dialog.dialog('close');
});
});