动态加载js文件
2015-06-07 10:10
766 查看
第一种方法:
[html] view
plaincopy
<span style="font-size:14px;">function addscript(){
var js=document.getElementById("find");
var script=document.createElement("script");
script.type="text/javascript";
script.src="js/edit.js";
script.id="find";
document.body.replaceChild(script,js);
//alert("ok");
}</span>
jquery:
[html] view
plaincopy
function loadJs(file) {
var head = $("head").remove("script[role='reload']");
$("<scri" + "pt>" + "</scr" + "ipt>").attr({ role: 'reload', src: file, type: 'text/javascript' }).appendTo(head);
}
第二种方法:jquery函数getscript()
$.getScript('new.js',function(){
newFun('"Checking new script"');//这个函数是在new.js里面的,当点击click后运行这个函数
});
第三种方法:
js封装成函数,需要是重新加载一遍
$(document).ready(function global(){.......
success:function(data){
//alert(data);
$("#ajax").hide();
//cleatInterval(load);
$("#edit-main").append(data);
//addscript();
global();
}
第四种方法:
一个JavaScript逻辑,会自动绑定函数到按钮的click事件,但是这段代码会反复注册事件。这样依赖onNext函数会在点击一次按钮的时候多次触发。
这是JQuery内部没有判断是否绑定多次,怀疑其内部用了数组保存事件函数,而且没有去重。
下面的代码预防了这个问题。解决方案很简单。
复制代码代码如下:
if (!this.hasPageBarEvents) {
$(".pNext").on("click", this, this.onNext);
this.hasPageBarEvents = true;
}
以后用到JQuery要小心这个特性。
第五种方法:
采用DOM0级事件监听 ON
[html] view
plaincopy
<span style="font-size:14px;">function addscript(){
var js=document.getElementById("find");
var script=document.createElement("script");
script.type="text/javascript";
script.src="js/edit.js";
script.id="find";
document.body.replaceChild(script,js);
//alert("ok");
}</span>
jquery:
[html] view
plaincopy
function loadJs(file) {
var head = $("head").remove("script[role='reload']");
$("<scri" + "pt>" + "</scr" + "ipt>").attr({ role: 'reload', src: file, type: 'text/javascript' }).appendTo(head);
}
第二种方法:jquery函数getscript()
$.getScript('new.js',function(){
newFun('"Checking new script"');//这个函数是在new.js里面的,当点击click后运行这个函数
});
第三种方法:
js封装成函数,需要是重新加载一遍
$(document).ready(function global(){.......
success:function(data){
//alert(data);
$("#ajax").hide();
//cleatInterval(load);
$("#edit-main").append(data);
//addscript();
global();
}
第四种方法:
一个JavaScript逻辑,会自动绑定函数到按钮的click事件,但是这段代码会反复注册事件。这样依赖onNext函数会在点击一次按钮的时候多次触发。
这是JQuery内部没有判断是否绑定多次,怀疑其内部用了数组保存事件函数,而且没有去重。
下面的代码预防了这个问题。解决方案很简单。
复制代码代码如下:
if (!this.hasPageBarEvents) {
$(".pNext").on("click", this, this.onNext);
this.hasPageBarEvents = true;
}
以后用到JQuery要小心这个特性。
第五种方法:
采用DOM0级事件监听 ON
相关文章推荐
- javascript中对条件判断语句的优化
- javascript中对条件判断语句的优化
- javascript中对条件判断语句的优化 分类: JavaScript 2015-06-07 09:54 832人阅读 评论(2) 收藏
- javascript客户端检测技术
- JavaScript OOP 创建对象的7种方式
- 理解Javascript的动态语言特性
- JS放在head和放在body中的区别
- js让iframe高度自动
- Introduction to JSON
- JSP (1)
- Js 冒泡事件阻止
- JavaScript把字符串转化成数字的几种方法
- 深入理解JavaScript闭包
- Json学习笔记
- js 删除数组中重复元素
- javascript操作ASP.NET服务器控件
- 图片预览js插件
- 图片预览js插件
- JSTL 国际化标签
- JavaScript学习笔记(四)