从has no method 'tmpl'谈起
最近做一个相对比较功能专业化的应用系统,其中今天Leader提出的功能修改需求有点smart table的意思,其中有个界面修改由于用Dom操作太麻烦了,于是想用用很久之前在学习jQuery API中看到的js模板,这个东东好像目前在一些JS MVC实现中很流行。
1、第一次看到"has no method 'tmpl'"这个提示,G了一下,结果第一个结果英文帖子说tmpl不属于jquery的核心内容,属于插件,需要另外下载jquery-tmpl插件,据说这是微软贡献的开源插件,host在github上,下载地址:https://github.com/jquery/jquery-tmpl
2、把上面那个插件的min.js加载上,仍然函数不存在的提示,开始的时候以为是函数的调用方式有问题,于是采用插件文档中的Demo写法,仍然提示函数不存在,后来动脑袋想了想,发现了其中问题:由于我目前开发的模块和网站整体的JS引用存在区别,所以目前模块的JS引用没有写在foot.jsp里,而是写在side.jsp里面,有些mainContent页面里面的JS代码存在对库的依赖问题,于是在mainContent前面部分,可能会重复地放某些JS库文件,比如此处的jQuery.min.js,而我的tmpl.min.js由于只在这个页面内用一下,于是放在mainContent.jsp中jquery.js引用的后面,而我的页面整体布局采用的固定布局方式,sidebar虽然在mainContent的左面,但是采用负值maring-left的布局方式,side.jsp文件代码实际页面中是在mainContent的后面,导致我的tmpl.js实际是在两个jquery.js的中间,tmpl给$对象添加的tmpl函数,在后面那个jQuery中又被重置了,所以找不到啊。Ok,这个提示的问题就此解决。同时稍微深入谈一下JS加载依赖这个问题,其实如果所有JS里面的函数都暴露在全局,不存在调用某个对象的函数属性问题的话,前前后后都无所谓,因为是平行的,而且执行都是加载完的事件引发,依赖的是那部分,依赖的其实是那些在函数外面的代码,也就是那部分在加载的时候就要执行的代码,这些代码之间才存在真正的依赖关系:也就是后面执行的代码要依靠前面代码的执行结果,这和静态语言比如C之类的include是有区别的,C的include解决的是语言编译时的引用依赖,而JS中的依赖实际是执行关系的依赖,说白了:后面的代码用到了前面代码的计算结果,而不是仅仅那么一个引用标记。
3、前面那个问题算是解决了,下面讲讲其他几个今天碰到的JS问题,先将讲dblclick事件的绑定问题,白天在单位做的,那个时间CSDN博客访问有问题,晚上回家写,代码也不在身边,可能细节上不太全,有兴趣的人凑活看吧,第一次实现的时候,用的就是最基本的方法,用元素on属性解决的,我在Chrome下做的测试,结果上线以后,IE下基本无效,G了一下,发现IE和其他浏览器在这事件上语法不一样,于是乎用jQuery的dblclick()方法绑定事件函数解决跨浏览器兼容问题,结果还发现另外一个问题,由于事件冒泡模型的区别,之前的事件处理函数在某些情况下会出现设定外的意外处理情况,于是乎用event.stopPropagation();解决了这个问题。
4、在后续的另外一个blur事件处理函数中,采用元素on属性方式下,在IE中,jQuery语法的的event对象好像无效,event.target是个null,由于这个事件函数的target是动态添加的,于是用jQuery的live函数做了事件绑定处理,解决了event无效的问题,后来想了想,可能jQuery的event跨浏览器兼容要想生效,可能必须得用它的函数做事件绑定,否则它的阔浏览器处理可能插不进来。具体估计得看它的代码才能确认。
5、button元素的Type属性的默认值问题,昨天碰到预设的普通button在点击之后,不但激发了click事件,在事件处理之后还自动提交了表单,好像之前碰到过这个问题,当时只是解决了,没有思考问题原因,昨天我觉得可能是前面说的问题,但是只是加了明文的type属性,没有做确认,今天写了段代码试了一下,果然是啊,button元素在IE里面的默认Type属性值是button,在Chrome和Firefox里面的默认属性值是submit。所以用这个元素的时候,最好还是写明其Type属性值。
从has no method 'tmpl'谈起的更多相关文章
- 浅谈C++设计模式之工厂方法(Factory Method)
为什么要用设计模式?根本原因是为了代码复用,增加可维护性. 面向对象设计坚持的原则:开闭原则(Open Closed Principle,OCP).里氏代换原则(Liskov Substitution ...
- 再谈机器学习中的归一化方法(Normalization Method)
机器学习.数据挖掘工作中,数据前期准备.数据预处理过程.特征提取等几个步骤几乎要花费数据工程师一半的工作时间.同时,数据预处理的效果也直接影响了后续模型能否有效的工作.然而,目前的大部分学术研究主要集 ...
- 网络(最大)流初步+二分图初步 (浅谈EK,Dinic, Hungarian method:]
本文中 N为点数,M为边数: EK: (brute_force) : 每次bfs暴力找到一条增广路,更新流量,代码如下 : 时间复杂度:O(NM²): #include<bits/stdc++ ...
- 浅谈 LayoutInflater
浅谈 LayoutInflater 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/View 文中如有纰漏,欢迎大家留言指出. 在 Android 的 ...
- 浅谈WebService的版本兼容性设计
在现在大型的项目或者软件开发中,一般都会有很多种终端, PC端比如Winform.WebForm,移动端,比如各种Native客户端(iOS, Android, WP),Html5等,我们要满足以上所 ...
- 浅谈Virtual Machine Manager(SCVMM 2012) cluster 过载状态检测算法
在我们使用scvmm2012的时候,经常会看到群集状态变成了这样 点开看属性后,我们发现是这样 . 发现了吗?Over-committed,如果翻译过来就是资源过载,或者说资源过量使用了,那么这个状态 ...
- 归一化方法 Normalization Method
1. 概要 数据预处理在众多深度学习算法中都起着重要作用,实际情况中,将数据做归一化和白化处理后,很多算法能够发挥最佳效果.然而除非对这些算法有丰富的使用经验,否则预处理的精确参数并非显而易见. 2. ...
- 浅谈Java中的equals和==(转)
浅谈Java中的equals和== 在初学Java时,可能会经常碰到下面的代码: 1 String str1 = new String("hello"); 2 String str ...
- PPK谈JS笔记第一弹
以下内容是读书笔记,再一次温习JS好书:PPK谈JS window.load=initializePageaddEventSimple('window','load',function(){}) lo ...
随机推荐
- 如何在Cocos2D 1.0 中掩饰一个精灵(五)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 掩饰和CCRenderTexture CCRenderTextu ...
- 1021. Deepest Root (25) -并查集判树 -BFS求深度
题目如下: A graph which is connected and acyclic can be considered a tree. The height of the tree depend ...
- 【Android 系统开发】 编译 Android文件系统 u-boot 内核 并烧写到 OK-6410A 开发板上
博客地址 : http://blog.csdn.net/shulianghan/article/details/40299813 本篇文章中用到的工具源码下载 : -- ok-6410A 附带的 A ...
- 【Unity Shaders】Reflecting Your World —— Unity3D中简单的Cubemap反射
本系列主要参考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同时会加上一点个人理解或拓展. 这里是本书所有的插图.这里是本书所需的代码和资源 ...
- Android应用---基于NDK的samples例程hello-jni学习NDK开发
Android应用---基于NDK的samples例程hello-jni学习NDK开发 NDK下载地址:http://developer.android.com/tools/sdk/ndk/index ...
- Ext JS添加子组件的误区
经常会有人问我,为什么我的Grid不能岁窗口的变得而自动调整.了解后,发现很多人都习惯在渲染子组件的时候将Gird渲染到容器内的一个div里,而这正是问题的所在. 在Ext JS的布局系统中,能控制到 ...
- SpriteBuilder中如何固定两个互不接触的物理物体?
如下图: 这个弹簧装置由3部分组成(从上到下): 弹板 弹簧 弹簧金属底座 其中弹板将固定在弹簧上(但并没有接触,如上图),这就引出一个有趣的问题:怎么样才能将两个独立的物理物体(注意:是物理物体)固 ...
- iOS中UIKit的外观属性及方法汇总
这里将UIKit的外观属性及方法从头文件中抽取出来,以便查找及熟悉.(更新到iOS 8.0,从A-Z排序) UIActivityIndicatorView @property (readwrite, ...
- C语言之插入排序
插入法排序的要领就是每读入一个数立即插入到最终存放的数组中,每次插入都使得该数组有序. 上代码: #include <stdio.h> #include <stdlib.h> ...
- 手动将jar添加到maven仓库中
1.将jar放到E:\workspace\lib中.如下图: 2.编写pom.xml文件,定义jfinal的坐标. <project xmlns="http://maven.ap ...