Tag: requirejs

jQuery插件+ AMD =如何访问函数?

我正在AMD环境中包装我的jQuery插件。 这是我的样板, !function(root, factory) { if (typeof define === ‘function’ && define.amd) { define([‘jquery’], factory); } else { factory(root.jQuery); } }(this, function($) { var defaults = { target: ” }; var myPlugin = function(options) { options = $.extend(true, {}, defaults, options); return options; }; myPlugin.prototype = { init: function(options) { return options; } }; $.fn.myPlugin […]

使用requireJS for plugin将多个函数导出到jquery

我正在尝试使用requireJS 将此库/插件添加到jquery。 我看过文档和其他SO问题,我仍然无法弄清楚出了什么问题。 使用backbone和require作为例子:我很确定我需要在main.js文件中使用shim。 我也很确定我还需要在我想要使用的特定文件中加载插件(即使我实际上并没有在函数体中使用rangyInputs对象)(我这样做)骨干)。 真的,我只想将rangyInputs库中的函数绑定到jquery一次,然后只需要在我需要这些函数的所有文件中使用jquery。 define([ ‘jquery’, ‘underscore’, ‘backbone’ , ‘views/listView’ , ‘sockets’ , ‘collections/nodesCollection’ , ‘views/listView’ , ‘models/node’ , ‘rangyInputs’ //I define the path to this like I do the path for backbone in main.js ], function($, _, Backbone, ListView, io, nodesCollection, listView, nodeModel ,rangyInputs){ 最小化的图书馆最后有这个: $.fn.extend({ getSelection: jQuerify(getSelection, false), setSelection: jQuerify(setSelection, true), […]

使用Require.js动态加载模块

我正在尝试动态加载模块,如本文开头所述: 参考链接 这是我的scripts/main.js require.config({ baseUrl: ‘scripts’, paths: { jquery: ‘lib/jquery-2.0.3’ }, config: { ‘main’: { modules: [‘mod1’, ‘mod2’, ‘mod3’] } } }); require(function(require, exports, module) { console.log(“Loading modules”); require(module.config().modules); }); 当main.js被加载时,外部require函数内的代码永远不会被执行,并且“加载模块”永远不会被打印到控制台。 阅读了这个链接的AMD文档,我看不出我做错了什么。 动态加载数组外部定义的模块的正确方法是什么? 谢谢! 更新: 这就是我现在拥有的: // main.js require.config({ … config: { ‘some_module’: { modules: [‘mod1’] } } }); require([‘some_module’], function(some_module) { }); // some_module.js […]

移动的全宽度不可能是phonegap,requirejs,jquery

问题描述: 目前正在使用requirejs,backbone和jquery在phonegap中开发代码。 如果我在Android手机上显示应用程序并且屏幕垂直保持(宽度比高度窄)那么渲染页面不会占据整个宽度(卡在95%左右 )。 如果我旋转手机,则屏幕占据100%可见宽度。 甚至在体内设置div的宽度也不会呈现100%…… 显示的设备有android 2.3.5版本和phonegap上的构建 HTML和CSS: 以下是index.html和相关的css: 和css: body { -webkit-touch-callout: none; /* prevent callout to copy image, etc when tap to hold */ -webkit-text-size-adjust: none; /* prevent webkit from resizing text to fit */ -webkit-user-select: none; /* prevent copy paste, to allow, change ‘none’ to ‘text’ */ font-family:’HelveticaNeue-Light’, ‘HelveticaNeue’, Helvetica, Arial, […]

使用RequireJS + jQuery加载jCarousel

我正在尝试使用RequireJS加载一个名为jCarousel的java插件。 我的项目结构如下所示: [project root] assets app js app.js vendor jquery-2.1.0.js jquery.jcarousel-core.js require.js 我正在使用shim配置,所以我首先加载RequireJS,如下所示: 然后在app.js中,我有RequireJS的这个配置: requirejs.config({ “baseUrl”: “assets/js/vendor”, “paths”: { “app”: “../../app” }, “shim”: { “jquery.jcarousel-core.js”: [“jquery-2.1.0”] } }); // Load the main app module to start the app requirejs([“app/main”]); 当我使用此框架加载页面时,所有脚本似乎都加载了,但是我在浏览器控制台的jcarousel代码中出错: 未捕获的ReferenceError:未定义jQuery 这个错误似乎来自jQuery中的行 – 我不记得这个过程的技术名称 – ‘$’符号被映射到’jQuery’,例如: return Plugin; }; }(jQuery)); // THIS IS THE OFFENDING […]

require.js Uncaught TypeError:对象#的属性’$’不是函数

我第一次尝试使用require.js,但是我收到了错误: 未捕获的TypeError:对象#的属性’$’不是函数。 require.config({ shim: { “jquery”: { exports: ‘$’ }, underscore: { exports: ‘_’ }, backbone: { deps: [‘underscore’, ‘jquery’], exports: ‘Backbone’ } }, paths: { jquery: ‘//cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min’, underscore: ‘//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.5.2/underscore-min’, backbone: ‘//cdnjs.cloudflare.com/ajax/libs/backbone.js/1.1.0/backbone-min’, templates: ‘/referralgenie/templates/’ } }); require([ ‘app’ ], function(App){ App.initialize(); }); 它声明错误在backbone.js中,所以我发现很难调试。 错误来自这里的行: Backbone.history.start(); 在我的路由器文件中: // Filename: router.js define([ ‘jquery’, ‘underscore’, ‘backbone’, ‘views/CampaginView’, ‘views/RewardView’, […]

如何使用带有backbone.js和require.js的Jquery-file-upload

我有一个使用require.js的backbone.js应用程序,我希望在jquery插件之后实现这个: https : //github.com/blueimp/jQuery-File-Upload 我遵循了这个流程: https : //github.com/blueimp/jQuery-File-Upload/wiki/Basic-plugin 如果有人可以通过此插件向我发送骨干应用程序工作的示例,或者可以帮助我进行其他建议。 在您阅读我的代码之前: Require.js配置: require.config({ paths: { ‘jquery’ : ‘common/vendors/jquery_2.1.0’, ‘underscore’ : ‘common/vendors/underscore_1.6.0’, ‘backbone’ : ‘common/vendors/backbone_1.1.2’, ‘layoutmanager’ : ‘common/vendors/backbone.layoutmanager_0.9.5’, ‘jquery.iframe-transport’ : ‘common/vendors/jquery.iframe.transport_1.0’, ‘jquery.ui.widget’ : ‘common/vendors/jquery.ui.widget_1.10.4’, ‘jquery.fileupload.ui’ : ‘common/vendors/jquery_fileupload/jquery.fileupload.ui_9.6.0’, ‘jquery.fileupload’ : ‘common/vendors/jquery_fileupload/jquery.fileupload_5.40.3’ }, shim: { ‘jquery’: { exports: ‘$’ }, ‘underscore’: { exports: ‘_’ }, ‘backbone’ : { deps: […]

RequireJS随机加载错误的文件名与AMD模块

我的配置(main.js)定义为: require.config({ urlArgs: “bust=” + (new Date()).getTime(), paths: { jquery: ‘jquery-1.8.3.min’, knockout: ‘knockout-2.2.0’, komapping: ‘knockout.mapping-latest’, token: ‘jquery.tokeninput’ }, shim: { ‘token’: [‘jquery’] } }); 编辑 main.js是一个共享配置。 我有几个页面都使用相同的设置,我不想在我的项目中的所有地方修改特定于版本的文件名。 /编辑 并包含在页面中: add-report.js包含在: require([‘Views/add-report’]); 编辑似乎可能是原因。 内联脚本有时在main之前运行,因此没有定义它期望找到的别名,所以它只是寻找.js。 /编辑 jquery.tokeninput是AFAIK,我正在使用的唯一非AMD模块。 工作请求会产生以下请求序列(Fiddler捕获): require.js main.js 查看/插件report.js 查看/添加 – 报告 – 向导model.js 淘汰赛2.2.0 jQuery的1.8.3.min.js 查看/添加报告精灵模型,parameter.js 查看/添加报告精灵模型,step.js knockout.mapping-latest.js 非工作请求具有如下序列: require.js 查看/插件report.js main.js 查看/添加 – […]

使用requirejs在循环内的函数

我在使用requirejs在不同模块的循环中调用函数时遇到问题。 循环中的函数调用驻留在模块A中,并在模块B中执行一个函数,该函数使用jQuery触发Ajax请求。 循环的每次迭代都会触发一个不同的请求,并将不同的参数传递给模块B的函数,该函数将触发Ajax请求。 当Ajax请求的成功函数执行时,我发现对于所有4个单独的Ajax调用,我的所有参数值始终是最后一次调用Ajax的值。 我做了一些谷歌搜索,听起来这是在循环中执行函数时非常常见的问题。 修复往往是将函数调用分解为不同的函数,创建不同的范围。 由于我的循环和Ajax调用在2个不同的模块中,我认为这将解决该问题,但它仍然存在。 我在其他堆栈溢出post中尝试了一些解决方案,例如: JSlint错误’不要在循环中创建函数’。 导致有关Javascript本身以及如何将参数传递给setTimeout调用中定义的匿名函数的问题? 没有成功。 有人有什么想法吗? 循环模块A的示例代码: define([“mpos”], function(mpos){ var monitor = { startMonitoring : function(poolObj){ // Start Monitoring $.each(mpos.msgs, function(action,callback){ poolObj.action = action; mpos.sendApiRequest(poolObj,action,callback); }); } }; return monitor; } ); Ajax模块B的示例代码 – 该模块在模块A中引用为mpos define([“mule”,”constants”], function(mule,constants){ var mpos = { sendMessage : function(postData,callback,$poolOut){ return $.ajax({ ‘type’:’post’, ‘url’:constants.URLS.proxy, ‘data’:{‘url’:postData}, […]

哪个库重写$?

我正在尝试使用jquery / bootstrap /和requirejs 加载js文件工作得很好,我检查了bootstrap设置$ .fn.tab = someFunction; 但是,在requirejs的回调函数中,调用$(foo).tab(’show’)会导致错误,表明该选项卡不可用于该对象。 Uncaught TypeError: Object [object Object] has no method ‘tab’ 一切都很好,我确认他们打印日志。 但我想$是重新定义的东西。 我应该从哪里开始看? grep ‘$\s*=’ ? 我的代码相当长,我发布了一个不同的问题: jquery,bootstrap 3.0和requirejs。 不能使用bootstrap的function 如果这有任何区别,我正在使用django