gpt4 book ai didi

javascript - 为什么我的模态 jQuery 对话框会打开多次?

转载 作者:行者123 更新时间:2023-11-30 10:49:54 28 4
gpt4 key购买 nike

我想使用 jQuery 对话框在模态对话框中打开答案表单。加载页面后,第一次,没问题,但之后每次点击都会打开 2^n-1 次!!! (n 是点击次数)

像这样:

click-> open dialog (1 time) -> close dialog

click-> open dialog (2 times) -> close dialog

click-> open dialog (4 times) -> close dialog

click-> open dialog (8 times) -> close dialog

这是代码:

$(function () {
$('label.answer').click(function (event) { openInDialog(this, event, 'http://localhost/Questions/Answer/2') });
});

function openInDialog(element, event, target)
{
event.preventDefault();
var $loading = $('<img src="../../Others/images/ajaxLoading.gif" alt="loading" class="ui-loading-icon">');
var $url = target;
var $title = "Title";
var $dialog = $('<div></div>');
$dialog.empty();


$dialog
.append($loading)
.load($url)
.dialog(
{
autoOpen: false
, title: $title
, modal: true
, show: 'fade'
, hide: 'fade'
});

$dialog.dialog('open');
};

最佳答案

在函数外初始化对话框。在加载成功之前,您也不应尝试打开对话框。

$(function () {
$('label.answer').click(function (event) { openInDialog(this, event, 'http://localhost/Questions/Answer/2') });
});
var $dialog = $('<div></div>').dialog(
{
autoOpen: false
, modal: true
, show: 'fade'
, hide: 'fade'
});

function openInDialog(element, event, target)
{
event.preventDefault();
var $loading = $('<img src="../../Others/images/ajaxLoading.gif" alt="loading" class="ui-loading-icon">');
var $url = target;
var $title = "Title";
$dialog.empty();
/* this is incorrect $dialog.dialog({ "option", "title",$title})*/
$dialog.dialog("option", "title",$title)
.append($loading)
.load($url,function(){
$dialog.dialog('open');
});
};

关于javascript - 为什么我的模态 jQuery 对话框会打开多次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6122088/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com