1

私の他の質問は解決されなかったので、私が行った変更でこれを試してみます。理解しやすく、答えやすいはずです。

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);
    });
}

2番目のバインドが機能していません。構文が原因だと思います。コード実行後は次のようになります

<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">

最初のバインドは3番目のdivに移動して機能します。つまり、2番目のonclickバインディングであるコンテナーdivにDOMツリーを登る必要があります。誰かがそれを機能させる方法を知っていますか?

4

2 に答える 2

1

.parent()次の関数を使用します。

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

コードが機能しない理由は、div [id=xyz]とは異なるためですdiv[id=xyz]id=xyz1つ目は、「内にあるすべての要素」を意味しますdiv。2番目は「。を含むすべてのdiv」を意味しid=xyzます。jQueryのスペースは、すべての子について(再帰的に)話していることを意味します。だからそれ$('div[aria-labelledby="ui-dialog-title-patient_22274"]')

于 2013-02-15T13:19:42.007 に答える
1

セレクターにスペースがあります。そのはず

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

ただし、それが親divである場合は、

$(this).parent().bind('click', function() { ... })
于 2013-02-15T13:17:50.987 に答える