2015-12-02 43 views
0

我是新來的模塊化JS。我想一個簡單的類切換轉換成一個模塊,但我不能定位正確LI。這切換了所有的箭頭。JS模塊目標類

var toggleArrow = { 
    init: function(){ 
     this.cacheDom(); 
     this.bindEvents(); 
     //this.render(); 
    }, 
    cacheDom: function(){ 
     this.$el = $('.has-accordion'); 
    }, 
    bindEvents: function(){ 
     this.$el.on('show hide',this.toggleAccordion.bind(this)); 
    }, 
    toggleAccordion: function(e){   
     this.$el.find('i').toggleClass('page-arrow-down'); 
    } 

}; 
toggleArrow.init(); 
// spaguetti code being converted 
// $('.collapsible').on("show", ".has-accordion", function(event){ 
//  $(this).find('i').addClass("page-arrow-down"); 
// }); 
// $('.collapsible').on("hide", ".has-accordion", function(event){ 
//  $(this).find('i').removeClass("page-arrow-down"); 
// }); 

樣本HTML

<ul> 
<li class="has-accordion" data-toggle="collapse" data-target="#collapseOne">One<i class="page-arrow-next"></i> 
<ul id="collapseOne" class="collapse"> 
     <li>Item 1</li> 
     <li>Item 2</li> 
</ul> 
</li> 
<li class="has-accordion" data-toggle="collapse" data-target="#collapseTwo">Two<i class="page-arrow-next"></i> 
<ul id="collapseTwo" class="collapse"> 
     <li>Item 1</li> 
     <li>Item 2</li> 
</ul> 
</li> 
</ul> 

回答

0

有在( '顯示隱藏')的jQuery沒有這樣的事件,您可以添加這些自定義方法。

,而不是你可以只添加一個類「開放」打開的列表,並且可以用CSS改變<i>風格。

看一看http://jsbin.com/debuticifo/edit?html,css,js,output

+0

可能值得添加一些代碼到您的實際答案。如果鏈路斷開這個答案是不值錢。 –

+0

名單連有引導的可摺疊的代碼,因此它會觸發,它會註冊顯示/隱藏方法。無論哪種方式,基於點擊的響應工作。謝謝! – sandraqu