0

うまくいけば、誰かがこの問題で私を助けてくれます。私はjQuery Mobileを使用しており、クリック時に要素のIDを取得したいのですが、リスト項目が折りたたまれていない場合に限ります。以下は私が持っているものです。

HTML:

<div data-role="page" id="myPage">
  <h3>Current Clients</h3>
  <div data-role="collapsible-set">

    <div data-role='collapsible' data-collapsed='true' class='userList'>
      <h3 id='1' class='unverified getID'>John Doe</h3>
      <div>
        <p>collapsed content 1</p>
      </div>
    </div> <!-- .userList -->

    <div data-role='collapsible' data-collapsed='true' class='userList'>
      <h3 id='2' class='verified getID'>Jane Doe</h3>
      <div>
        <p>collapsed content 2</p>
      </div>
    </div> <!-- .userList -->

  </div><!-- collapsible-set -->
</div><!-- #myPage -->

JS:

var thisID;
$(".getID").click(function(e) {
  if($(this).parent(".userList").attr('data-collapsed', false)){
    thisID = $(this).attr("id");
    alert(thisID);
  }  
});

上記の jsFiddle のコードは次のとおりです: http://jsfiddle.net/8xHmj/9/

ID を取得しますが、要素がクリックされるか、折りたたまれているかどうかにかかわらず、アラートを出します。どんな助けでも大歓迎です。

4

1 に答える 1

0

if ステートメントが実際に属性を設定している場合は、次のように変更します。

if ($(this).parent(".userList").attr('data-collapsed') == 'false')

.data関数を使用して確認することもできます。

if ($(this).parent(".userList").data('collapsed') == 'false')
于 2013-07-09T18:54:23.253 に答える