为什么不首次尝试关闭对话框?或者更好的问题是为什么jQuery对象$("#dialog")
与$(this).parent('div.dialog')
不同?
$('#click').click(function() {
$("#dialog").dialog("open");
});
$("#dialog").dialog({autoOpen:false}).find('li').click(function(){
$(this).parent('div.dialog').dialog('close');
$("#dialog").dialog("close");
});
<div id="dialog">
<ul>
<li>111</li>
<li>222</li>
<li>333</li>
</ul>
</div>
答案 0 :(得分:1)
$(this).parent('div.dialog')
只会查找一个级别,以查看父级是否与该选择器匹配。它不会进一步遍历。结果是空集,因此使用.dialog()
无效。
这里的工作原理是closest
jQuery API。
$(this).closest('div.dialog')
这与示例中的$("#dialog")
相同。