我有一个页面,我正在加载一个选择标签,其中包含从 ajax 调用到服务的选项。它工作正常并正确加载选择标签。我只希望这种加载在用户第一次到达页面时发生一次,所以我将调用放在 $(document).ready(function call 中执行此操作的函数。我看到的问题是当用户选择一个选项,然后在某些情况下单击一个按钮我弹出一个对话框(jQuery UI)告诉他们他们需要采取某种行动。第一次发生这种情况,只有第一次选择的选项以某种方式重置为列表中的第一个选项。我在调试中运行了很多次,发现如果这是页面上的第一次,则选择器在到达页面时按预期加载,但如果对话框被弹出,它会再次加载 - 只有第一次 - 之后如果对话框弹出重新加载不会发生,一切都很好。缩写代码:
$(document).ready(function () {
$.fn.LoadStuff();
});
jQuery.fn.LoadStuff = function () {
//load up the select tag with options
};
LoadStuff
不会在其他任何地方被调用。selOffers 是选择标签,dvConflict 是对话框。他们不共享一个共同的父 div。
<select id="selOffers"></select>
<div id="dvConflict"><div id="dvConflictMsg" /></div>
用于对话框的 jQuery:
var optSave = {
width: 400,
modal: true,
resizable: false,
draggable: false,
closeOnEscape: true,
zIndex: 1320,
buttons: [
{
text: 'Ok',
click: function () {
$(this).dialog('close');
}
}
]
}
$(".ui-dialog-titlebar").hide(); //Hides the title
$('#dvConflict').css('background', 'none'); //取出我们自定义的背景 $('#dvConflict').dialog(optSave);