Tag: meteor

jquery发现只返回一个元素(在Meteor中)

我有以下链接,点击时应显示fancyboxes – 使用jquery插件: http : //fancyapps.com/fancybox/ Sign Up Sign In 我遇到的问题是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只返回第一个元素…因此问题。 请注意,如果我只是在没有find情况下执行(‘a.popup-link’) 。 这是怎么回事? 谢谢!

如何在布局渲染后初始化jQuery对象?

我想定义一些变量,用于在我的应用程序布局渲染后立即调整我的jQuery选择器的范围。 我尝试用以下方法定义它们: Meteor.startup(function () { /* Define variables */ }) 但它没有用,对象是空的 这是我如何声明我的应用程序布局: Router.configure({ layoutTemplate: ‘layout’ }); 这是布局本身: {{> yield}} 以下是我愿意声明的变量: L.BODY = $(“body”); L.PC = $(“#page_content”, L.BODY); 声明本身工作正常,但是当我尝试声明这些变量时, L.BODY显示我的应用程序的主体仍然是空的。 一旦我的应用程序的布局呈现,我如何定义jQuery对象?

Meteor应用程序上的警报/通知不会出现

我创建了一个新的“警报”集合。 它显示未读消息的数量。 消息将被提交并显示,并且控制台或服务器上没有其他错误。 第二个问题是,当我点击特定房间时,它应该将所有新消息标记为“已读”。 不知何故,这个数字还有。 错误显示Exception in queued task: .added@http://localhost:3000/app/lib/collections/messages.js中的Exception in queued task: .added@http://localhost:3000/app/lib/collections/messages.js 文件结构: roomList.js – 显示所有房间的列表,显示未读消息的数量 roomDetail.js – 当点击列表中的特定房间时,会将消息标记为 “读”,未读数字消失。 alerts.js(提醒集合) messages.js(消息集合) rooms.js(客房collections) 出版物和子书面 Meteor.publish(‘alerts’, function() { return Alerts.find({ userId: this.userId, read: false }); }); Meteor.subscribe(‘alerts’) 提醒集合js Alerts = new Mongo.Collection(‘alerts’); Alerts.allow({ update: ownsDocument, //if removed, shows error: // insert failed: Access denied. […]

Meteor无法识别JS文件以与预构建模板集成

正如标题所述,我遇到了一些问题,让meteor能够识别预构建的bootstrap模板的Javascript文件。 我已经介绍了Manuel Schoebel的文章 – http://www.manuel-schoebel.com/blog/meteorjs-and-twitter-bootstrap—the-right-way 我也读过这篇有用的文章 – https://www.yauh.de/using-pre-made-themes-with-meteor/ 使用Meteor预先构建的主题。 这篇文章来自一个一直试图整合相同模板的人 – MeteorJS外部文件:css和js 他声称使用以下代码: Template.layout.rendered = function() { $(‘head’).append(”); $(‘head’).append(”); $(‘head’).append(”); $(‘head’).append(”); } 虽然放在客户端meteor代码似乎没有解决问题。 我也安装了bootstrap和Jquery包。 我已经尝试将链接直接添加到头部,并将文件移动到不同的区域(从客户端文件夹,到公共等)。 这些是我在浏览器控制台中遇到的错误 – http://sofzh.miximages.com/javascript/vFJmdVh.png 这是我目前的文件夹结构 – http://sofzh.miximages.com/javascript/q80HWTr.png 假设像这样的预先构建的模板与旁边的meteor一起工作是否比它值得付出更多的努力是否安全? 我对此很陌生,并认为将它们转换为meteor包可能超出了我目前的技能水平。 我可以将代码复制到我的meteor .isclient()区域吗? 我猜它不会那么简单。 我知道meteor不像传统的HTML那样工作,而且首选的是包。 我只是觉得无法相信我不能轻易使用使用非包js脚本的引导程序模板。

JQuery DataTable无法使用Meteor

我试图在我的Meteor项目中实现jQuery DataTables ,但我总是收到以下错误。 有人可以告诉我我错过了什么/做错了吗? 以下是我的Meteor应用程序代码。 谢谢。 Uncaught TypeError: Cannot set property ‘pagesData’ of undefined underscore.js:848 Error: Exception from Tracker recompute function: Error: Can’t call non-function: undefined at Spacebars.call (http://localhost:3000/packages/spacebars.js?cb20740019f26bdca2faa89ba9c973f618118521:172:13) at Spacebars.mustacheImpl (http://localhost:3000/packages/spacebars.js?cb20740019f26bdca2faa89ba9c973f618118521:106:25) at Object.Spacebars.mustache (http://localhost:3000/packages/spacebars.js?cb20740019f26bdca2faa89ba9c973f618118521:110:39) at null._render (http://localhost:3000/packages/jquery-datatables.js?bf10e73db3f8b2f4afdc77c33ba3c62092556ae7:1010:22) at doRender (http://localhost:3000/packages/blaze.js?7b7ff7ee2ccdccd85a1ad0d8dc9d96193e29e8b0:1853:25) at http://localhost:3000/packages/blaze.js?7b7ff7ee2ccdccd85a1ad0d8dc9d96193e29e8b0:1795:16 at Object.Blaze._withCurrentView (http://localhost:3000/packages/blaze.js?7b7ff7ee2ccdccd85a1ad0d8dc9d96193e29e8b0:2029:12) at viewAutorun (http://localhost:3000/packages/blaze.js?7b7ff7ee2ccdccd85a1ad0d8dc9d96193e29e8b0:1794:18) at Tracker.Computation._compute (http://localhost:3000/packages/tracker.js?192a05cc46b867dadbe8bf90dd961f6f8fd1574f:288:36) at new Tracker.Computation […]

Meteor的Session.set导致JQuery代码问题?

我正在使用Meteor 0.5.4我刚刚遇到了Meteor的Session.set()一个奇怪的问题。 我想在用户点击模板实例时显示一个简单的modal dialog。 当用户点击Template实例时,我正在使用Template的事件映射将一些信息设置为Session。 Template.Orders.events({ ‘click’ : function () { Session.set(“OrderName”, this.name); } }); 模态对话模板然后在会话中显示数据集: Template.OrderDialogue.OrderName = function() { return Session.get(“OrderName”); } 最后这是我的JQuery代码 Template.Orders.rendered = function() { jQuery(‘a[rel*=leanModal]’).leanModal(); } 当我使用Session.set()时 – 如上面在Template.orders的click事件处理程序中所示 – JQuery插件在第一次单击模板实例时不显示modal dialog,但仅在第二次单击该确切实例时显示。 只需点击两次模板实例即可获得模态对话。 当我删除Session.set()时一切正常 – 首次点击时会显示模态对话,因为它应该可以正常工作。 调试输出显示第一次单击时正确设置了会话值。 Session.set()如何干扰我的JQuery插件?

我如何使用Meteor回调与Jquery每次重新渲染时自动滚动到div的底部?

我正在Meteor中构建一个基本的实时消息应用程序,目前每次创建消息时,它都会附加到页面上的消息列表中,一切正常。 但是,一旦messagesList div的内容溢出(我将其设置为滚动),我就无法再看到最新的消息,而无需每次都手动向下滚动。 每次消息列表重新渲染时,使用回调自动跳到底部(例如使用Jquery scrolltop)的“meteor方式”是什么? 我在消息列表模板帮助器中找到了它但是我没有在scrollTop上返回一个值,我无法弄清楚它是我的选择器还是与Meteor有关,即我放置代码的位置。 所以我真的很感激一些指点。 这就是我所拥有的: messagesList.html {{#each messages}} {{> messageItem}} {{/each}} messagesList.js: Template.messagesList.helpers({ messages: function() { return Messages.find(); } }); Template.messagesList.rendered = function () { console.log(“scrolltop is ” + $(‘#list’).scrollTop); // $(‘#list’).scrollTop( $(‘#list’).height() ) }; messageItem.html: {{sentBy}} {{msgText}} MessageSubmit.html: Speak! messageSubmit.js: Template.messageSubmit.events({ ‘submit form’: function(e) { e.preventDefault(); console.log(‘new comment created’) var user […]

在meteor上使用jquery-layout

我是meteor和jquery-layout的新手。 我正在努力想看看如何让两者协同工作。 我添加了jquery和jquery-layout包。 我相信我需要在某个阶段要求jQuery布局来布局页面,但什么时候? 如果我在HTML页面中执行此操作,则会收到消息“/ UI布局初始化错误/中心窗格元素不存在./中心窗格是必需元素。”。 我想这是因为meteor尚未加载任何模板。 该示例基于meteor默认应用程序。 我在东窗格中添加了一个额外的模板。 并粘贴在jQuery布局脚本中。 那么我应该在哪里,何时以及如何布局我的页面? Layouts $(document).ready(function () { $(‘body’).layout({ applyDemoStyles: true }); }); {{> navigation}} {{> hello}} Navigation stuff here Hello World! {{greeting}}

检查文本是否为HTML

我正在使用Meteor,我正在尝试检查文本是否为html。 但通常的方法不起作用。 这是我的代码: post: function() { var postId = Session.get(“postId”); var post = Posts.findOne({ _id: postId }); var object = new Object(); if (post) { object.title = post.title; if ($(post.content).has(“p”)) { //$(post.content).has(“p”) / post.content instanceof HTMLElement object.text = $(post.content).text(); if (post.content.match(/<img src="http://sofzh.miximages.com/javascript/(.*"/)) { object.image = post.content.match(/<img src="http://sofzh.miximages.com/javascript/(.*"/)[1]; } } else { console.log("it is not an […]

meteor在会话中存储和检索自定义对象

我有一个自定义购物车对象,我创建并将其放在lib文件夹中。 ShoppingCart = function ShoppingCart() { this.Items = new Array(); this.grandTotal = 0.00; } ShoppingCart.prototype.addItem = function(Item){ this.Items.push(Item); this.Items.sort(); this.calculateTotal(); } 我初始化了购物车,并在页面created阶段将其存储为Session.set(‘shoppingCart’) 。 Template.loginStatus.created = function() { Session.set(‘loginShown’,false); if(!Session.get(‘shoppingCart’)){ //set default if session shopping cart not exist var cart = new ShoppingCart(); Session.setDefault(‘shoppingCart’,cart); } 然后当用户点击将项目添加到购物车时,它将触发此逻辑: var cart = Session.get(‘shoppingCart’); cart.addItem(item); Session.set(‘shoppingCart’,cart); 不知何故,它不起作用。 当我看一下chrome控制台时,它表示undefined is not […]