每个对话框只打开一次,之后没有任何反应。我已经搜索了一段时间,这里有一些答案,但老实说,我不理解它们。 (我对jQuery和jQuery UI都很陌生)所以你能给我的任何帮助都会很棒!
$('.prdDetails').click(function() {
$(this).next('#prdDetails').dialog({
draggable: false,
height: 100,
modal: true,
resizable: false,
width: 100
});
return false;
});
谢谢你的时间!
答案 0 :(得分:1)
问题出在那一行:
$(this).next('#prdDetails').dialog({
对话框在打开后会改变其位置,因此它不再是next()
的开场白。
您应该使用唯一 id
来识别对话框。
<强> HTML:强>
<a class="prdDetails" data-dialog="#d1">Dialog 1</a>
<div id="d1" class="hidden">This Is Dialog 1</div>
<a class="prdDetails" data-dialog="#d2">Dialog 2</a>
<div id="d2" class="hidden">This Is Dialog 2</div>
<a class="prdDetails" data-dialog="#d3">Dialog 3</a>
<div id="d3" class="hidden">This Is Dialog 3</div>
<强>脚本:强>
$('.prdDetails').click(function(e) {
e.preventDefault();
$($(this).data('dialog')).dialog({
draggable: false,
height: 100,
modal: true,
resizable: false,
width: 100
});
});
JSFiddle (打开控制台以了解对话框中发生了什么,以及为什么不能使用next()
)