Click事件不管用..。在Jquery中使用角,文件中有多个单击事件,但这一项不起作用
<ul class="phone-tumbs">
<li ng-repeat="img in phone.images" class="additionalImgs">
<img ng-src="{{img}}" alt="possible images" />
</li>
</ul>
<script>
$(document).ready(function() {
$(".additionalImgs").click(function() {
$(this).fadeOut();
});
});
</script>发布于 2015-05-05 22:10:36
我会这样做的“角度方式”:
<ul class="phone-tumbs">
<li ng-repeat="img in phone.images" ng-class="{fadedout: img.fadedout}" ng-click="img.fadedout = true">
<img ng-src="{{img}}" alt="possible images" />
</li>
</ul>在你的css中
li{
transition: opacity .5s;
}
.fadedout{
opacity: 0;
}或者实际使用ng显示和ng动画:http://www.nganimate.org/
发布于 2015-05-05 22:02:49
如果你像这样尝试,它会起作用吗?
$(document).ready(function(){
$(".phone-tumbs").on('click', '.additionalImgs',function(){
$(this).fadeOut();
});
});发布于 2015-05-05 22:21:16
我只是遇到了同样的问题。
你的代码很好,看这把小提琴
问题,就像上面提到的一个注释,是角还没有完成元素的渲染。
您可以通过在单击函数的右侧运行jQuery函数来看到这一点。你会看到长度是0。
console.log($(".additionalImgs"));因此,现在您必须找到一种方法来延迟click事件的绑定,直到您知道元素实际存在为止。
不幸的是,这个区域的角度处理得不太好。你可以在此功能请求上读到更多关于它的信息。
我总是尝试的第一件事是使用$timeout。它一直等到摘要循环结束才触发回调代码,即使时间是空的
$timeout(function(){
$(".additionalImgs").click(function() {
$(this).fadeOut();
});
});这篇博客文章有一个很好的解决方案,创建了一个指令,在呈现最后一个ng重复元素时触发回调。http://www.nodewiz.biz/angular-js-final-callback-after-ng-repeat/
解决这个特殊问题的最简单的方法是在ng-click元素上使用ng-repeat。
<li ng-repeat="img in phone.images" ng-click="somefunction();" class="additionalImgs">https://stackoverflow.com/questions/30063364
复制相似问题