JQuery绑定onclick到父div

时间:2013-02-15 13:16:29

标签: jquery jquery-selectors

我的另一个问题没有得到解决方案,所以我会根据我所做的更改尝试这个,它应该更容易理解和回答。

我正在尝试将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绑定。有人知道如何使这个工作吗?

2 个答案:

答案 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"]')