2013-07-10 64 views
0

我想用RadButton和JQuery做一些相當簡單的事情。我有一個轉發器divs,radbutton和一個內部div應該.slideDown或.slideUp(inner_container)使用JQuery時,單擊按鈕。我只需要在點擊按鈕的outside_container內的div inner_container時發生這種情況。Telerik RadButton與JQuery

正在中繼器中重複這些按鈕和樣式,所以我需要一個特定的容器,否則它們都會打開和關閉。我不能得到.parents(「outside_container」)。find(「inner_container」)。slideDown()工作,因爲我似乎無法找到具體的radbutton id或如果我使用var button = sender.get_id(); jQuery的功能.parents()不適用於它?

我不知道如何讓這張幻燈片上下工作RadButtons。而且我無法切換到asp:按鈕,因爲這是我正在更新的現有項目。

function ShowVoidDetail(sender, args) 
{ 
    var button = sender.get_id(); 

    $(button).parents(".event_is_void_container").find(".event_is_void").slideDown(); 
    sender.set_text("Hide Void Event"); 

    args.set_cancel(true); 
} 

ASPX頁面下方...

<asp:repeater> 
<itemtemplate> 
     <table> 
    <tr> 
     <td> 
        <div class="event_is_void_container"> 
        <div class="buttons"> 
         <rad:RadButton id="btnShowDetails" OnClientClicking="ShowDetail"/> 
        </div> 

        <div class="event_is_void"> /*this style is display:none by default*/ 
         A bunch of data... 
        </div> 
       <div> 
      </td> 
     </tr> 
</itemtemplate> 

回答

0

如果一個類添加到您的按鈕,那麼你可以單擊事件到類綁定,然後使用this元素的動作只有按鈕被點擊,這樣

$('.expandButton').click(function() { 
    $(this).parent().next().slideDown(); 
}); 

而你的中繼代碼會是這個樣子:

<asp:repeater> 
    <itemtemplate> 
      <table> 
     <tr> 
      <td> 
         <div class="event_is_void_container"> 
         <div class="buttons"> 
          <rad:RadButton id="btnShowDetails" 
          OnClientClicking="ShowDetail" class="expandButton" /> 
         </div> 

         <div class="event_is_void"> /*this style is display:none by default*/ 
          A bunch of data... 
         </div> 
        <div> 
       </td> 
      </tr> 
    </itemtemplate> 

這裏是一個例子http://jsfiddle.net/Z5s95/

+0

感謝您的解決方案。 – Jon

+0

我也剛剛發現,如果我添加一個#到我使用sender.get_id()捕獲的id比在$(button).parents ...調用中工作的id。 問題解決 – Jon