我的另一个问题没有得到解决方案,所以我会根据我所做的更改尝试这个,它应该更容易理解和回答。
我正在尝试将onclick绑定到一个正在运行的对话框。然而,onclick也需要绑定到jQuery包装对话框的父div。
open: function()
{
$(this).bind('click', function(){
$('#focusedPatient').val(thiskey);
});
$('div [aria-labelledby="ui-dialog-title-patient_22274"]').bind('click', function(){
$('#focusedPatient').val(thiskey);
});
}
第二个绑定不起作用,我猜是因为我的语法。代码执行后,它看起来像
<div style="display: block; z-index: 1004; outline: 0px; height: auto;
width: auto; top: 141px; left: 50px;" class="ui-dialog ui-widget ui-widget-content
ui-corner-all ui-draggable" tabindex="-1" role="dialog"
aria-labelledby="ui-dialog-title-patient_22274">
<div class="ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix">
<span class="ui-dialog-title" id="ui-dialog-title-patient_22274">
<img src="imgs/omButtons/omIcon.png" border="0">
IS0001_LG, Austin Smith, Date Created: NULL, Date Updated: NULL,
Created By: Michael</span>
<div class="ui-dialog-titlebar-buttonpane" style="position: absolute; top: 50%;
right: 0.3em; margin-top: -10px; height: 18px;">
<a href="#" class="ui-dialog-titlebar-close ui-corner-all" role="button"
style="position: static; top: auto; right: auto; margin: 0px;">
<span class="ui-icon ui-icon-closethick">close</span></a>
<a class="ui-dialog-titlebar-maximize ui-corner-all" href="#" role="button" style="">
<span class="ui-icon ui-icon-extlink">maximize</span></a>
<a class="ui-dialog-titlebar-restore ui-corner-all" href="#" role="button"
style="display: none;"><span class="ui-icon ui-icon-newwin">restore</span></a>
<a class="ui-dialog-titlebar-minimize ui-corner-all" href="#" role="button" style="">
<span class="ui-icon ui-icon-minus">minimize</span></a>
</div>
</div>
<div onclick="$('#focusedPatient').val('22274')" id="patient_22274"
style="display: block; width: auto; min-height: 113.375px; height: auto;"
class="ui-dialog-content ui-widget-content ui-dialog-normal" scrolltop="0" scrollleft="0">
第一个绑定转到第三个div工作,我需要将dom树爬到容器div,这是第二个onclick绑定。有人知道如何使这个工作吗?
答案 0 :(得分:1)
选择器中有空格。它应该是
$('div[aria-labelledby="ui-dialog-title-patient_22274"]')
但是,如果它是父div,你就可以做到
$(this).parent().bind('click', function() { ... })
答案 1 :(得分:1)
使用.parent()
功能:
$(this).bind('click', function(){
$('#focusedPatient').val(thiskey);
});
$(this).parent().bind('click', function(){
$('#focusedPatient').val(thiskey);
});
您的代码无效的原因是div [id=xyz]
与div[id=xyz]
不同。第一种方式是id=xyz
&#34;中div
的任何元素。第二个意思是&#34;任何具有id=xyz
&#34;的div。 jQuery中的空格意味着您正在谈论所有孩子(递归地)。所以 应该$('div[aria-labelledby="ui-dialog-title-patient_22274"]')