我正在尝试使用.closest打开一个对话框,但我似乎无法使其正常工作。
我在这里摆弄它: http://jsfiddle.net/dx2yz8mg/
$(function(){
$('.prdDetails').click(function() {
$('#prdDetails').dialog({
draggable: false,
height: 430,
modal: true,
resizable: false,
width: 774,
});
return false;
});
});
我试过这个:
$(this).closest('#prdDetails').dialog({
我觉得这样可以,但它不起作用,有没有人有任何想法?
我需要这样做的原因是我动态地提取内容。目前,当您单击第二个.prdDetails时,您会在弹出窗口中看到第一个#prdDetails。
答案 0 :(得分:1)
认为你应该使用 next 而不是最近的,
$(this).next('#prdDetails').dialog({
接下来将找到下一个兄弟姐妹,而最近搜索DOM树。
您还应该删除多个ID,并检查是否已经创建了一个对话框以避免在每次单击时实例化它。这样应该是一个完整的解决方案
答案 1 :(得分:0)
从docs,.closest
检查元素本身并遍历DOM。
你有这个:
<a class="prdDetails">More Details ></a>
<div id="prdDetails" class="hidden">Stuff</div>
他们是兄弟姐妹,而不是父母/孩子。
顺便说一句,您应该使用>
代替>
答案 2 :(得分:-1)
您有width: 774,
您必须删除,
背后的width