jquery find只返回一个元素(在Meteor中)
jquery find returning only one element (in Meteor)
我有以下链接,当点击应该显示fancyboxes-使用jquery插件在这里:http://fancyapps.com/fancybox/
<div class="boxes">
<a href="/signup.html" class="btn popup-link fancybox.ajax">Sign Up</a>
<a href="/signin.html" class="btn popup-link fancybox.ajax">Sign In</a>
</div>
我遇到的问题是,fancybox只适用于第一个链接。在Meteor中,我有:
Template.mytemplate.rendered = function () {
console.log($(this.find('a.popup-link')));
$(this.find('a.popup-link')).fancybox({
padding: 18,
openMethod: 'changeIn',
closeBtn : false,
beforeShow: function() {
$('input:checkbox').ezMark();
$('select').selectbox();
$('.trigger-ajax').on('click', function(e) {
e.preventDefault()
$('.fancybox-wrap').animate({ 'left': '-100%'}, 400, function() {
$(this).parent().find('.popup-link').trigger('click');
})
})
}
});
}
当我点击第一个链接时,我的fancybox按预期加载,但当我点击第二个链接时,什么也没有发生。
通过console.log也可以清楚地看到find只返回第一个元素…这就是问题所在
注意它不工作,如果我只做('a.popup-link')
没有find
。
怎么回事?谢谢!
使用this.findAll('a.popup-link')
而不是this.find('a.popup-link')
,如果你试图使用流星模板方法(不是jQuery find()方法)。
但是,findAll()返回一个DOM元素数组,我不确定$()是否会接受它作为参数。如果没有,你可以循环遍历数组中的元素。
我认为你正在使用不同的find
方法。用途:
$(this).find('a.popup-link').fancybox({
我不确定this.find('a.popup-link')
是如何工作的,但我想这取决于this
和find
是/做了什么。要使用jQuery方法find
,您需要一个jQuery对象。这就是$(this)
所做的。从那里,你可以找到"a.p up-link"后代与find
。
相关文章:
- 使用clickToggle并在单击另一个元素时关闭元素
- 表追加而不附加最后一个元素
- 滚动到容器中的下一个元素-几乎到了
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- 按我自己的类克隆另一个元素的内容和顺序
- Javascript获取上一个元素的内容
- 如何通过HTML+CSS中的另一个元素Selector更改元素的属性值
- 在数组中的一个元素上设置多个值
- 无法选择除一个元素外的所有元素
- 使用jquery contains获取一个元素并添加类
- $(.class).empty总是缺少一个元素
- jQuery-将列表项的一个元素移动到同一项的另一个元素中+对我的列表中的每个项执行此操作
- 如何在一个元素动画之后延迟
- jQuery转盘下一个元素没有滑入
- jquery从另一个元素中移除移除
- DIV怎么能像Javascript中的另一个元素一样工作呢
- 当知道同一hiearch中至少有一个元素时,遍历到元素.结构使用jquery
- 使用数据属性将HTML数据复制到另一个元素
- 如何选择给定类的上一个元素
- 动态修改一个元素,使其与给定的选择器匹配