Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从ng单击调用$event上的JQuery函数_Javascript_Jquery_Angularjs - Fatal编程技术网

Javascript 从ng单击调用$event上的JQuery函数

Javascript 从ng单击调用$event上的JQuery函数,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,我有一个带有ng click的div,我在其中调用以下函数: $scope.toggleLog = function($event){ $event.currentTarget.slideToggle() } 当我查看调试器时,$event.currentTarget指向我的div,所以看起来很好。但是,slideToggle函数未定义。我已经包括了JQuery。$event是jquery对象,currentTarget也是。那么为什么我不能在它上面调用任何与JQuery相关的函数

我有一个带有ng click的div,我在其中调用以下函数:

$scope.toggleLog = function($event){
     $event.currentTarget.slideToggle()
 }
当我查看调试器时,$event.currentTarget指向我的div,所以看起来很好。但是,slideToggle函数未定义。我已经包括了JQuery。$event是jquery对象,currentTarget也是。那么为什么我不能在它上面调用任何与JQuery相关的函数呢?

$event.currentTarget指向的是DOM元素,而不是JQuery对象。将其包装在jQuery中,然后调用slideToggle

$event.currentTarget指向的是DOM元素,而不是jQuery对象。将其包装在jQuery中,然后调用slideToggle

而不是这条线

$event.currentTarget.slideToggle()
试着用这种方式

angular.element($event.currentTarget).slideToggle();
是angularjs中jQuery的别名

如果jQuery可用,angular.element是jQuery的别名 作用如果jQuery不可用,angular.element将委托给 Angular的jQuery的内置子集,称为jQuery lite或jqLite

而不是这条线

$event.currentTarget.slideToggle()
试着用这种方式

angular.element($event.currentTarget).slideToggle();
是angularjs中jQuery的别名

如果jQuery可用,angular.element是jQuery的别名 作用如果jQuery不可用,angular.element将委托给 Angular的jQuery的内置子集,称为jQuery lite或jqLite


谢谢,行得通!使用angular.element比将元素包装在$之间有什么优势吗?我更新了我的答案,也请访问我包含的链接以便更好地理解:d当我阅读那里的文档时,我没有看到jqLite提供的slideToggle函数,因此在您的情况下,您必须有可用的jQuery:-谢谢,这很有效!使用angular.element比将元素包装在$之间有什么优势吗?我更新了我的答案,也请访问我包含的链接以便更好地理解:d当我阅读那里的文档时,我没有看到jqLite提供的slideToggle函数,因此在您的情况下,必须提供jQuery:-