javascript - jquery find 只返回一个元素(在 Meteor 中)

标签 javascript jquery 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 也很清楚,查找仅返回第一个元素...因此出现问题。

请注意,如果我只执行 ('a.popup-link') 而不使用 find,它不会起作用。

这是怎么回事?谢谢!

最佳答案

如果您尝试使用 this.findAll('a.popup-link') 而不是 this.find('a.popup-link') Meteor 模板方法(不是 jQuery find() 方法)。

但是,findAll() 返回一个 DOM 元素数组,我不确定 $() 是否会接受这些元素作为参数。如果没有,您可以循环遍历数组的元素。

关于javascript - jquery find 只返回一个元素(在 Meteor 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15885287/

相关文章:

jquery - 如果其他 Accordion 在 jQuery 中打开,则关闭 Accordion

jquery - 禁用 jquery 中的元素

javascript - jQuery 验证 - 如果多次使用,skip_or_fill_minimum 规则不会触发

javascript - 更改父对象,不会更改其他对象的原型(prototype)链

javascript - 放入从相机或自己的相机上拍摄的帧图像

javascript - TinyMCE 5 file_picker_callback 使用自定义处理程序上传

javascript - 构造对象数组

Synology NAS 上的 Meteor.js

javascript - 在Meteor中,定义辅助函数的旧方法与新方法不冲突吗?

javascript - meteor react 列表转换