Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
can';t根据查找结果调用jquery对话框_Jquery_Jquery Ui_Dialog_Find - Fatal编程技术网

can';t根据查找结果调用jquery对话框

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

全部,

我试图在用户单击图像时显示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>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");