2013-12-20 54 views
1

我正嘗試使用jquery在單擊事件的基礎上執行多個函數。關於單擊事件的多個功能

這裏是我的代碼:

$(document).ready(function(){ 
    var Acco_head = $('#Dashbordacco > li > a'); 
    var Acco_body = $('#Dashbordacco > li > div'); 

    Acco_head.first().addClass('active').next().show(); 
    Acco_head.on('click', function(event){ 
     if(myScroll != undefined || myScroll != null) { 
      refreshScroller(myScroll); 
     } 

     event.preventDefault(); 
     if ($(this).attr('class') != 'active'){ 

      Acco_body.slideUp('normal'); 

      if ($(this).attr('class') = 'UE') { 
       callPortfolioDataUrl(PortfolioDataUrl) 
       } 

      $(this).next().stop(true,true).slideToggle('normal'); 
      Acco_head.removeClass('active');   
      $(this).addClass('active');  
     } 
    }); 
}); 

這裏是HTML: -

<li class="UE"><a href="#">Upcoming Events</a> 
    <div id="indexdata2"> 
</div></li> 

但它拋出一個錯誤,如: 「轉讓的左側是不是一個參考。」

任何幫助?

回答

1

使用comparison operator

if ($(this).attr('class') === 'UE') { 

,而不是Assignment operator

if ($(this).attr('class') = 'UE') { 

嘗試,

$(document).ready(function(){ 
    var Acco_head = $('#Dashbordacco > li > a'); 
    var Acco_body = $('#Dashbordacco > li > div'); 

    Acco_head.first().addClass('active').next().show(); 
    Acco_head.on('click', function(event){ 
     if(myScroll != undefined || myScroll != null) { 
      refreshScroller(myScroll); 
     } 

     event.preventDefault(); 
     if ($(this).hasClass('active')){ 

      Acco_body.slideUp('normal'); 

      if ($(this).hasClass('UE')) { 
       callPortfolioDataUrl(PortfolioDataUrl) 
       } 

      $(this).next().stop(true,true).slideToggle('normal'); 
      Acco_head.removeClass('active');   
      $(this).addClass('active');  
     } 
    }); 
}); 

編輯:

使用.hasClass('classname')檢查源元素是否具有特定的類或不

+0

感謝Rajaprabhu,但是,請你告訴我,如果類「UE」是兩個階級的div之一,那麼應該是什麼那裏的條件調用該函數,因爲即使在刪除錯誤之後,我仍然無法爲我的目的服務? – UjjawalKr

+0

@UjjawalKr嘗試我的編輯,您必須使用.hasClass()來檢查該元素是否具有該特定類。 –

+0

試過這個,但它不工作..我把警報,如果條件..但點擊後它沒有工作.. – UjjawalKr

1

這是導致分配錯誤:

if ($(this).attr('class') = 'UE') { 

您應該使用比較操盤手:

if ($(this).attr('class') == 'UE') { 
+0

感謝guffa爲您的早期反應我得到的權利..但仍然無法服務我的目的..似乎我把錯誤的情況there.Will請告訴我,如果類「UE」是div的兩個類別之一,然後那裏應該調用那個函數的條件是什麼? – UjjawalKr

1

在Javascript中單相等(=)作爲賦值運算符,而兩個(==)或三個(===)用於比較。 ==將在比較之前隱式轉換類型,因此如果不進行何種類型轉換,===會更好。爲了解決您的問題,變化:

if ($(this).attr('class') = 'UE') {
這樣:
if ($(this).attr('class') === 'UE') {

相關問題