Tom*_*Tom 3 jquery load click onclick
我只是在点击#element时尝试在jquery中加载2个脚本.目前,我正在尝试使用:
jQuery("#element").click(function () {
jQuery('#elementcontainer').load('/js/jquery.script.js');
jQuery('#elementcontainer').load('/js/jquery.script2.js');
});
Run Code Online (Sandbox Code Playgroud)
问题是每次单击#element时脚本都会加载.我只希望脚本加载一次 - 目前他们也是这样做的
"http://127.0.0.1/pck/Js/jquery.script.js?_=1279101767931"
Run Code Online (Sandbox Code Playgroud)
如何只加载一次脚本并停止非缓存.我正在使用ASP.NET MVC?
谢谢
你可以one()像这样使用:
jQuery("#element").one('click', function () {
jQuery('#elementcontainer').load('/js/jquery.script.js?' + (new Date().getTime()));
jQuery('#elementcontainer').load('/js/jquery.script2.js?"' + (new Date().getTime()));
});
Run Code Online (Sandbox Code Playgroud)
.one()正好执行一次事件处理程序,该Date()部分用于缓存.我不确定你是否想要.load(),如果你的目的只是获取/执行脚本,那么$.getScript()更合适,如下所示:
jQuery("#element").one('click', function () {
jQuery.getScript('/js/jquery.script.js');
jQuery.getScript('/js/jquery.script2.js');
});
Run Code Online (Sandbox Code Playgroud)
$.ajax()dataType = "script"($.getScript()不是)的请求将不会被缓存.
如果要缓存,则有两个选项,可以使用$.ajaxSetup()一次(但这会影响所有后续$.ajax()或速记调用):
$.ajaxSetup({ cache: false });
Run Code Online (Sandbox Code Playgroud)
或者制作完整的$.ajax()通话版本$.getScript():
jQuery("#element").one('click', function () {
jQuery.ajax({ url: '/js/jquery.script.js', dataType: 'json', cache: true });
jQuery.ajax({ url: '/js/jquery.script2.js', dataType: 'json', cache: true });
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5962 次 |
| 最近记录: |