我目前在模式对话框中有一个表单,该对话框在选择下拉菜单之一中具有添加/编辑选项的链接。该链接根据需要在旧对话框的顶部打开一个新的模态对话框。但是,我似乎无法在第二个模式对话框中使用任何jquery ui小部件(特别是Accordian和datepicker小部件)。我遵循了如何在模态窗口内执行jquery?并在第一个模式对话框中同时显示了Accordian和datepicker小部件。
我一直在尝试第二个模式对话框的代码(不起作用):
$(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事件绑定,但它只带我到没有任何模式对话框的链接页面。我尝试添加类是因为我认为可能存在冲突,因为第一个对话框中也存在日期选择器。这是我的第一个使用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()
。查看您的提琴的更新:https : //jsfiddle.net/Twisty/8pfjz3k5/2/
$("#accordian").accordion();
确保选择器正确,并调用正确的方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句