can';t根据查找结果调用jquery对话框
全部, 我试图在用户单击图像时显示JQuery对话框 以下是我的HTML的精简版本:can';t根据查找结果调用jquery对话框,jquery,jquery-ui,dialog,find,Jquery,Jquery Ui,Dialog,Find,全部, 我试图在用户单击图像时显示JQuery对话框 以下是我的HTML的精简版本: <div class="MyHelpButton" style="display: inline;"> <img src="{{MEDIA_URL}}/img/MyHelpIcon.png"/> <div class="MyHelpText" title="MyTitle"> here <i>is</i> <u&g
<div class="MyHelpButton" style="display: inline;">
<img src="{{MEDIA_URL}}/img/MyHelpIcon.png"/>
<div class="MyHelpText" title="MyTitle">
here <i>is</i> <u>some</u> <b>text</b>
</div>
</div>
如您所见,dialog(“open”)函数仅在直接使用类选择器时有效,而在使用find()函数时无效。但是,由于页面上可能会有大量MyHelpButton,因此我必须能够找到这个特定的MyHelpText(被单击的MyHelpButton的子项)——因此我使用find()
你知道我做错了什么吗
谢谢你的帮助。试试这个,希望它能帮助你。
带有synatx$(“{someselector}{anotherselector}”)的选择器提示jQuery执行子体搜索,如下所述:
您可能需要对答案的接受度进行一些改进,您的答案接受率为0%。但它未打开,因为.find未返回任何项目。阅读文档,看看有什么问题。这是有效的:
$($(This).selector+“.MyHelpText”).dialog(“open”)代码>这就成功了。非常感谢你的邀请help@asawyer-我如何接受答案?每个问题的答案左侧都有一个绿色复选框。如果它是正确的并且对您有帮助,只需单击它!:)如果您愿意,我会将我的评论移动到一个答案。每次在单击处理程序上重新创建ui对话框都会导致严重的内存泄漏。如果调用$(this)。在对话框的“关闭”按钮上单击remove(),该怎么办。我用Sieve仔细检查了一下,至少在IE中是这样,这个解决方案在每次点击时都会泄露一份对话框html对象的副本。我有一个做类似事情的项目。我用一个名为content的内部div设置了对话框的一个实例。然后每次我想显示对话框时,我都会填充content div,然后显示。实际上,这就是我最后要做的。简单得多。
$(function() {
$(".MyHelpText").dialog({autoOpen:false});
$(".MyHelpButton").click(function() {
$(this).find(".MyHelpText").dialog("open"); // this doesn't work
//$(".MyHelpText").dialog("open"); // this works
});
});
$($(this).selector + " .MyHelpText").dialog("open");