Angular- 在鼠标悬停时获取最近的元素
Angular- Getting closest element on mouseover
我是 Angular JS 的新手,我正在尝试创建一个用于学习的小型网络应用程序。我正在尝试在鼠标悬停时制作工具提示文本,但我不确定如何获得它完成了 "Angular way"..
我创建了 2 个 span,悬停第一个时,我想显示第二个
我尝试使用 ng-mouseover 和 ng-mouseleave 调用动作-
<span class="info" ng-mouseover="info_in();" ng-mouseleave="info_out();">
<img src="images/info.png" />
</span>
<span class="info_bubble" ng-show="info">The Tooltip Text</span>
这就是我使用 JS 的地方-
$scope.info_in = function() {
this.parent().find('.info_bubble') = true;
};
$scope.info_out = function() {
this.parent().find('.info_bubble') = false;
};
每个页面上将有超过 1 个工具提示文本,我不确定如何完成。我尝试使用 "next()" 和 "closest()" 但无法获得它可以工作
当我尝试将鼠标悬停在元素上时,我得到 "this is not a function"
您的想法是正确的,但您的实施正朝着 jQuery 的方向发展,而不是 Angular 的方式。 :)
试试这个:
<span class="info" ng-mouseover="info=true" ng-mouseleave="info=false">
<img src="images/info.png" />
</span>
<span class="info_bubble" ng-show="info">The Tooltip Text</span>
无需控制器代码即可工作。
你所做的是,当鼠标进入图像时,Angular会将$scope.info
设置为true
。由于您的工具提示正在监视该范围变量,因此它将触发 ng-show
指令以显示您的工具提示。
ng-show
指令可以翻译为:当$scope.info == true
时,则show()
这个元素。当$scope.info == false
,则hide()
这个元素。
事实上,你可以像这样写你的工具提示元素更冗长(这有利于学习):
<span class="info_bubble" ng-show="info==true">The Tooltip Text</span>
我注意到您正在使用 jQuery 方法专门尝试在 DOM 中查找元素以便使用它。
Angular方法是改变$scope
上的变量。其他 HTML 元素将监视 $scope
上的变量,并将 自动 根据新值自行更改。 jQuery 方式是伸手去具体触摸并设置一个 DOM 元素上的值。 Angular 方式类似于对着风大喊,"Hey, my name is $scope.info
and I'm now true!" 并期望其他元素会听到它并离开,"Ok cool, now I can show myself because $scope.info
is true."
这是 jQuery 和 Angular 工作方式的主要区别。
我是 Angular JS 的新手,我正在尝试创建一个用于学习的小型网络应用程序。我正在尝试在鼠标悬停时制作工具提示文本,但我不确定如何获得它完成了 "Angular way"..
我创建了 2 个 span,悬停第一个时,我想显示第二个
我尝试使用 ng-mouseover 和 ng-mouseleave 调用动作-
<span class="info" ng-mouseover="info_in();" ng-mouseleave="info_out();">
<img src="images/info.png" />
</span>
<span class="info_bubble" ng-show="info">The Tooltip Text</span>
这就是我使用 JS 的地方-
$scope.info_in = function() {
this.parent().find('.info_bubble') = true;
};
$scope.info_out = function() {
this.parent().find('.info_bubble') = false;
};
每个页面上将有超过 1 个工具提示文本,我不确定如何完成。我尝试使用 "next()" 和 "closest()" 但无法获得它可以工作
当我尝试将鼠标悬停在元素上时,我得到 "this is not a function"
您的想法是正确的,但您的实施正朝着 jQuery 的方向发展,而不是 Angular 的方式。 :)
试试这个:
<span class="info" ng-mouseover="info=true" ng-mouseleave="info=false">
<img src="images/info.png" />
</span>
<span class="info_bubble" ng-show="info">The Tooltip Text</span>
无需控制器代码即可工作。
你所做的是,当鼠标进入图像时,Angular会将$scope.info
设置为true
。由于您的工具提示正在监视该范围变量,因此它将触发 ng-show
指令以显示您的工具提示。
ng-show
指令可以翻译为:当$scope.info == true
时,则show()
这个元素。当$scope.info == false
,则hide()
这个元素。
事实上,你可以像这样写你的工具提示元素更冗长(这有利于学习):
<span class="info_bubble" ng-show="info==true">The Tooltip Text</span>
我注意到您正在使用 jQuery 方法专门尝试在 DOM 中查找元素以便使用它。
Angular方法是改变$scope
上的变量。其他 HTML 元素将监视 $scope
上的变量,并将 自动 根据新值自行更改。 jQuery 方式是伸手去具体触摸并设置一个 DOM 元素上的值。 Angular 方式类似于对着风大喊,"Hey, my name is $scope.info
and I'm now true!" 并期望其他元素会听到它并离开,"Ok cool, now I can show myself because $scope.info
is true."
这是 jQuery 和 Angular 工作方式的主要区别。