gpt4 book ai didi

javascript - 如何在第二个堆叠模式对话框中包含 jquery ui 小部件?

转载 作者:行者123 更新时间:2023-11-28 06:21:44 24 4
gpt4 key购买 nike

我目前在模式对话框中有一个表单,其中有一个在选择下拉列表之一中添加/编辑选项的链接。此链接根据我的需要在旧模式对话框之上打开一个新的模式对话框。但是,我似乎无法让任何 jquery ui 小部件在第二个模式对话框中工作(特别是 Accordion 和日期选择器小部件)。我已关注How to execute jquery inside a Modal window?并使 Accordion 和日期选择器小部件在第一个模式对话框中工作。

我一直在尝试第二个模式对话框的代码(不起作用):

    $(document).on("click", ".view_dialog_2", function(event) {    
$dialog_2.load($(this).attr('href'), function()
{
$('#accordian').addClass('accordian2');
$('#meeting_date').addClass('date2');
$('#follow_up_date').addClass('date2');
$(function() {
$( ".accordian2" ).accordion();
collapsible: true;
});
$(function() {
$( ".date2" ).datepicker();
});
$dialog_2.dialog('open');
});
return false;
});

当前适用于第一个模式对话框的代码:

    $(".view_dialog").click(function(){
$dialog.load($(this).attr('href'), function()
{
$(function() {
$("#addPartNum, .order-button")
.button();
});
$(function() {
$( "#meeting_date" ).datepicker();
});
$(function() {
$( "#follow_up_date" ).datepicker();
});
$dialog.dialog('open');
});

return false;
});

我尝试删除第二个对话框的 $(document).on 事件绑定(bind),但它只是将我带到链接页面,没有任何模式对话框。我尝试添加类,因为我认为可能存在冲突,因为日期选择器也出现在第一个对话框中。这是我使用 jquery 的第一个项目,大部分时间我都已经掌握了它,但是这个让我难住了。任何帮助将不胜感激:)

编辑:这是第二个不起作用的对话框的对话框代码(不确定是否有必要)

    var $dialog_2 = $("#view_dialog_2").dialog(
{
autoOpen: false,
height: 800,
width: 800,
resizable: true,
modal: true,
buttons: {
"Submit": function() {
// do stuff
$dialog_2.dialog("close");
},
"Cancel": function() {
$dialog_2.dialog("close");
}
}

});

编辑#2:这是一个 jsfiddle 来更多地演示我的问题:https://jsfiddle.net/8pfjz3k5/

最佳答案

可能有不止一种方法可以做到这一点,但这里有一个简单的示例,您可以从以下位置开始:https://jsfiddle.net/7xo1Lcy1/

HTML

<div id="start-box" title="First Form">
<p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>Form</p>
<a id="add" href="#">Add/Edit</a>
<div id="add-box">
<label>Next</label>
<input type="text" />
</div>
<script>
$("#add-box").dialog({
autoOpen: false,
resizable: true,
modal: true,
buttons: {
"Submit": function() {
// do stuff
$(this).dialog("close");
},
"Cancel": function() {
$(this).dialog("close");
}
}
});
</script>
</div>


<a id="start" href="#dialog-conf">Start Here</a>

JQuery

$(function() {
$("#start-box").dialog({
autoOpen: false,
resizable: false,
height: 340,
modal: true,
buttons: {
"Save": function() {
$(this).dialog("close");
},
Cancel: function() {
$(this).dialog("close");
}
}
});
$("#start").button();
$("#start").click(function() {
$("#start-box").dialog("open");
});
$("#start-box").on("click", "#add", function(e) {
console.log("Launching Add Box.");
$("#add-box").dialog("open");
});
});

所以你可以看到我从 $(document) 转向 .on()。这应该在对话框打开时查找 Click 事件。然后它打开下一个对话框(第一个对话框仍在后台)。

希望对您有所帮助。

编辑

您没有初始化.accordion()。查看您的 fiddle 更新:https://jsfiddle.net/Twisty/8pfjz3k5/2/

$("#accordian").accordion();

确保您的选择器正确并且调用了正确的方法。

关于javascript - 如何在第二个堆叠模式对话框中包含 jquery ui 小部件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35470213/

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