2016-05-19 52 views
0

我在app.js下面的代碼:入門「的slideToggle()不是一個函數」,而使用AngularJS

$scope.myData.mouseLeave = function(event) { 
     var el = document.getElementById(event.target.id); 
     console.log("hey, i'm running"); 
     el.style.backgroundColor = '#aabbcc'; 
    }; 
    $scope.myData.mouseClick = function(event) { 
     console.log("yes I am also running"); 
     var header = document.getElementById(event.target.id); 

     //getting the next element 
     var content = header.nextSibling; 
     if (content.classList.contains("container")) { 
      //open up the content needed - toggle the slide- if visible, slide up, if not slidedown. 
      $(content).slideToggle(500); 
     } 
    }; 
}); 

的鼠標離開工作正常,但我想用一個jQuery功能mouseClick函數,它給我在瀏覽器中的錯誤slideToggle不是一個函數。我搜索了周圍,無法找到任何東西,除了一個沒有幫助的SO問題。我在調用我的js代碼之前加載jquery,所以我不確定是什麼問題。

我如何獲得slideToggle在我的代碼中工作?

回答

0

slideToggle是一個jQuery方法,但這是你的代碼:

var header = document.getElementById(event.target.id); 
//getting the next element 
var content = header.nextSibling; 
... 
content.slideToggle(500); 

這代碼創建一個DOM對象。一個DOM對象是而不是一個jQuery對象。

創建從一個DOM對象jQuery對象的方式,如果你想這樣做,出於某種原因...

+0

嘗試包裝內容與jQuery對象構造'$(內容).slideToggle (500)' – Enjayy

+0

@Enjayy我正在使用http://stackoverflow.com/questions/625936/how-can-i-convert-a-dom-element-to-a-jquery-element此方法轉換爲jquery對象,但現在我得到$未定義。我在我的HTML中調用這個代碼之前加載jquery,所以不知道如何解決這個問題。 –

+0

@JanieLee您必須確保在調用此函數之前加載了jQuery。這就是爲什麼你得到$未定義的原因很可能是在代碼運行後加載jQuery – Enjayy

相關問題