2012-08-13 18 views
0

我需要了解(this)的工作原理。我已經看到許多不同的案例和使用它的實例,但用法不同。我只想定位幾個具有類名的一個div。我似乎無法得到這個工作正常。我已經閱讀了Stackoverflow中的幾個答案,但似乎無法使用(this)來定位一個類。再次感謝您的幫助。如何使用(This)以slideToggle JQuery作爲目標的類?

的JS

<script type="text/javascript"> 
    jQuery(document).ready(function(){ 
    jQuery('.expandCollapseMenu').click(function(){ 
     jQuery(this).parent().find('.menu_product_main_container').slideToggle(); 
    }); 
    }); 
</script> 

的HTML

<div class="menu_category_category"> 
    <h3 class="basic_catolog">Beverages</h3>   
    <div class="toggle_menu"> 
     <img alt="" style="border: 0px none;" src="/images/icons/collapse_menu_icon_on.png" class="expandCollapseMenu {src: '/images/icons/expand_menu_icon.png'}" /> 
    </div> 
</div> 
<div class="menu_product_main_container"> 
    <p>Menu Item 1</p> 
    <p>Menu Item 2</p> 
</div> 
<div class="menu_category_category"> 
    <h3 class="basic_catolog">Lunch</h3> 
    <div class="toggle_menu"> 
    <img alt="" style="border: 0px none;" src="/images/icons/collapse_menu_icon_on.png" class="expandCollapseMenu {src: '/images/icons/expand_menu_icon.png'}" /> 
    </div> 
</div> 
<div class="menu_product_main_container"> 
    <p>Lunch Item 1</p> 
    <p>Lunch Item 2</p> 
</div> 

回答

0

它忽略了一個.parent()

jQuery(this).parent().find('.menu_product_main_container').slideToggle();這一行你得到<div class="toggle_menu">

因此,解決辦法是jQuery(this).parent().parent().find('.menu_product_main_container').slideToggle();

編輯:

確定與縮進我們看到更好的問題。一個解決方案可以把這樣一個新的div

<div> 
    <div class="menu_category_category"> 
    <h3 class="basic_catolog">Beverages</h3>   
    <div class="toggle_menu"> 
     <img alt="" style="border: 0px none;" src="/images/icons/collapse_menu_icon_on.png" class="expandCollapseMenu {src: '/images/icons/expand_menu_icon.png'}" /> 
    </div> 
    </div> 
    <div class="menu_product_main_container"> 
    <p>Menu Item 1</p> 
    <p>Menu Item 2</p> 
    </div> 
</div> 

我沒有更多的想法你的問題,而不改變DOM。

1

this值取決於上下文的代碼是英寸

在事件處理程序的情況下(如傳遞給.click()的功能),this將指觸發事件的元件(否則稱爲事件目標)。

在迭代函數的上下文中,如.each(),this將引用迭代的當前元素。