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 回答