2016-05-19 22 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

相关问题