Javascript 在AngularJS中查找最近的元素
我想在单击Javascript 在AngularJS中查找最近的元素,javascript,angularjs,Javascript,Angularjs,我想在单击a时滑动切换最近的.contactDetails。下面是我不工作的代码 <ul> <li ng-repeat="detail in details"> <div> <a show-contact>{{something}}</a> <div class="contactDetails"> <ul>
a
时滑动切换最近的.contactDetails
。下面是我不工作的代码
<ul>
<li ng-repeat="detail in details">
<div>
<a show-contact>{{something}}</a>
<div class="contactDetails">
<ul>
<li ng-repeat="another ng-repeat">
<b>{{something}}</b>
</li>
</ul>
</div>
<br>
</div>
</li>
</ul>
app.directive("showContact", function () {
return {
restrict: "A",
link: function (scope, element) {
element.click(function () {
element.find(".contactDetails").slideToggle();
});
}
};
});
-
{{something}}
-
{{something}}
应用指令(“showContact”,功能(){
返回{
限制:“A”,
链接:功能(范围、元素){
元素。单击(函数(){
元素。查找(“.contactDetails”).slideToggle();
});
}
};
});
我认为AngularJS找不到最近的联系人详细信息,因此无法执行slideToggle()
我试过了,但是
元素。最近的(.contactDetails”)
也不起作用。谢谢您的帮助。因为锚定标记不包含您无法使用的div。最近的搜索是向上搜索,而不是向下搜索。下面是我将如何做(仅显示指令的link:part):
我已经创建了您要求的-->运行代码段的解决方案 1)在这里我得到了.contactDetails元素
element.on('click', function () {
//Code goes here
});
var contactDetails=element.next()
2)然后我调用方法
.toggleClass('隐藏')
在.contactDetails元素上,显示/隐藏元素
3)“.hide”类的显示属性设置为无强>
element.on('click', function () {
//Code goes here
});
显示:无
4)在元素上添加事件侦听器
element.on('click', function () {
//Code goes here
});
var myapp=angular.module('myapp',[]);
myapp.指令(“showContact”,函数(){
返回{
限制:“A”,
链接:功能(范围、元素){
元素上('单击',函数(){
var contactDetails=element.next();
contactDetails.toggleClass('hide');
});
}
}
});
myapp.controller('MainCtrl',['$scope',函数($scope){
this.something='this is something';
this.arr=['mike','john','brian','joe'];
}]);代码>
正文{
字体系列:Arial,Tahoma;
}
.隐藏{
显示:无;
}
a{
光标:指针;
}
-
切换类(单击我)
-
{{name}}
我不明白你所说的“向下遍历”和“查找壁橱.contactDetails”是什么意思-ng repeat只是一个指令,它在数组的每个索引上进行迭代。。。请更具体地说明你的想法question@MaxwellLasky希望我现在明白了,我刚刚更新了问题(谢谢。对不起,我仍然很难准确地理解您的问题……也许创建一个JSFIDLE可以帮助他人和我更好地理解您的问题。