gpt4 book ai didi

jquery ui 对话框在按钮和内容 div 上使用相同的类打开多个对话框

转载 作者:行者123 更新时间:2023-12-03 22:54:28 25 4
gpt4 key购买 nike

我想通过在按钮和内容 div 上使用相同的类来打开多个对话框。下面的方法有效,但仅适用于第一次。

jQuery('.helpDialog').hide();

jQuery('.helpButton').click(function() {
jQuery(this).next('.helpDialog').dialog({
autoOpen: true,
title: 'Help',
width: 500,
height: 300,
position: [180,10],
draggable: true,
resizable: false,
modal: false
});
return false;
});

我们知道原因 http://blog.nemikor.com/2009/04/08/basic-usage-of-the-jquery-ui-dialog/“第二个调用被忽略,因为对话框已经在该元素上实例化。”

但是当我通过尝试下面的代码解决该问题时,对话框不再打开。有人可以帮忙吗?提前致谢

jQuery('.helpDialog').hide();

jQuery(function() {
jQuery('.helpDialog').dialog({
autoOpen: false,
modal: true,
title: 'Info',
width: 600,
height: 400,
position: [200,0],
draggable: false
});
});

jQuery('.helpButton').click(function() {
jQuery(this).next('.helpDialog').dialog('open');
return false;
});

最佳答案

您实际上需要一种不同的方法,一种非直观的方法,如下所示:

jQuery(function($) {
$('.helpButton').each(function() {
$.data(this, 'dialog',
$(this).next('.helpDialog').dialog({
autoOpen: false,
modal: true,
title: 'Info',
width: 600,
height: 400,
position: [200,0],
draggable: false
})
);
}).click(function() {
$.data(this, 'dialog').dialog('open');
return false;
});
});

You can test it out here .

为什么必须这样做?因为 .dialog() 将其包含在对话框元素中的内容移动到 <body> 的末尾,所以 .next() 将不再找到它...通过使用 jQuery.data() 我们正在维护对要打开的对话框的引用。

关于jquery ui 对话框在按钮和内容 div 上使用相同的类打开多个对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4518889/

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