2013-02-15 44 views
1

我的其他問題沒有得到一個解決方案,所以我會嘗試與我所做的更改,應該更容易理解和回答。jQuery綁定onclick到父div

我想綁定一個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"> 

第一綁定進入到第三股利和作品,我需要DOM樹爬到div容器這是第二次的onclick綁定。任何人都知道如何使這一個工作?

+1

'$(this).parent()。on('click',function(){...});' – adeneo 2013-02-15 13:17:47

+0

這是一些討厭的HTML。你應該使用[.parent()JQuery函數](http://api.jquery.com/parent/) – 2013-02-15 13:31:33

回答

1

您在選擇器中有空間。它應該是

$('div[aria-labelledby="ui-dialog-title-patient_22274"]') 

但是,如果它是父DIV,你可以只是做

$(this).parent().bind('click', function() { ... }) 
+0

我昨天試過了,它沒有工作,現在嘗試它,所以我一定有一個錯字或東西。謝謝! – 2013-02-15 13:26:31

+0

有時您可能需要在對頁面進行JavaScript更改時清除瀏覽器的緩存。如果您使用Chrome,則可以使用Ctrl-Shift-R重新加載忽略緩存的頁面。 – Danny 2013-02-15 13:31:42

1

使用.parent()功能:

$(this).bind('click', function(){ 
     $('#focusedPatient').val(thiskey); 
    }); 
    $(this).parent().bind('click', function(){ 
     $('#focusedPatient').val(thiskey); 
    }); 

你的代碼是不工作的原因是因爲div [id=xyz]div[id=xyz]不同。第一個意思是「在div內的任何元素,id=xyz」。第二種意思是「與id=xyz的任何div」。 jQuery中的空間意味着你正在談論所有的孩子(遞歸地)。所以它應該$('div[aria-labelledby="ui-dialog-title-patient_22274"]')

+0

我嘗試過和沒有空間,因爲我不確定區別是什麼,+1是爲了解釋差異。此外,這位父母選擇工作,我昨天肯定有一個錯字! – 2013-02-15 13:27:07