2009-06-19 13 views
2

jQueryを使用するために 'accordian'スタイルの機能を追加しようとしているチケット管理プログラムがあります。このプログラムはPHPで書かれています。出力されるHTMLは次のようになります。このjQueryのslideToggle関数で何が問題になっていますか?

<div class="eachticketwrapper"> 
    <div class="simpleticketview"> 
      <ul class="displayinline ticketsummarybar"> 
        <li class="col0"><a href="#" class="toggleLink">E</a></li> 
         //... 
      </ul> 
     </div> <!-- simpleticketview --> 
<br class="clear" /> 
<div class="toggle"> <!-- hiddenticketview --> 
    //... 
</div> 

これはページ上で何十時間も繰り返されます。

私のjQueryのコードは次のようになります。私はEをクリックすると、それは次のdivをスライドさせないであろう

$(document).ready(function() { 
    $('div.toggle').hide(); 
    $('.toggleLink').click(function() { 
     $(this).next('div.toggle').slideToggle('fast'); 
    return false; 
    }); 
}); 

。実際には何も起こりません。

私はこれを試してみました: $( 'div.toggle')。slideToggle( 'slow');

これにより、すべてのdivがトグルします。しかし、NEXT divをターゲットにする必要があります。

ありがとうございます。

答えて

1

あなたは 'toggle' divに一意のIDを与え、あなたのリンクIDと一致させる必要があります。そして、これらのIDをターゲット:

<div class="eachticketwrapper">  
    <div class="simpleticketview">   
     <ul class="displayinline ticketsummarybar"> 
       <li class="col0"><a href="#" id="link-1234" class="toggleLink">E</a></li> 
        //...   </ul> 
    </div> <!-- simpleticketview --> 
    <br class="clear" /> 
    <div id="ticket-1234" class="toggle"> <!-- hiddenticketview -->  
    //... 
    </div> 

のjQuery:

$(document).ready(function() { 
    $('div.toggle').hide(); 
    $('.toggleLink').click(function() { 
     var id = $(this).attr("id").split("-"); 
     $("#ticket-" + id[1]).slideToggle('fast'); return false; 
    }); 
}); 
+1

応答ありがとうJason! 一意のIDの提供を避ける方法はありますか?私は、jQueryのパワーの美しさは、私が単に次の.toggle divと言うことができるという事実にあると思いました。偽の真実? – HeavyObjectLifter

+0

あなたはdivを編集することはできませんが、あなたが話しているdivを知る方法はありません。あなたのリンクがあなたのdivにあれば、あなたは、あなたがSOのソースコードを見れば、 – Jason

+0

btwを提案しているように、kgiannakakisのように.parents()を呼び出すことができます。また提案しました – Jason

0

あなたはIDなしのdivを得ることができますが、それは何らかの形で複雑になります。

$(this).parents().find("div.eachticketwrapper").nextAll().find("div.toggle:first") 

これは、の構造に依存しますあなたの文書複数のeachticketwrapper要素がある場合は、それを適合させる必要があります。 idを使う方が良いです。

関連する問題