jQuery在单击一次后加载脚本

jQuery在单击一次后加载脚本,jquery,load,click,onclick,Jquery,Load,Click,Onclick,我试图在jquery中只在单击一个#元素时加载两个脚本。目前,我正在尝试使用: jQuery("#element").click(function () { jQuery('#elementcontainer').load('/js/jquery.script.js'); jQuery('#elementcontainer').load('/js/jquery.script2.js'); }); 问题是每次单击#元素时脚本都会加载。我只想让脚本加载一

我试图在jquery中只在单击一个#元素时加载两个脚本。目前,我正在尝试使用:

    jQuery("#element").click(function () {
       jQuery('#elementcontainer').load('/js/jquery.script.js');
       jQuery('#elementcontainer').load('/js/jquery.script2.js');
    });
问题是每次单击#元素时脚本都会加载。我只想让脚本加载一次,目前它们也是这样

"http://127.0.0.1/pck/Js/jquery.script.js?_=1279101767931"
如何仅加载一次脚本并停止非缓存。我正在使用ASP.NET MVC


Thx

这将实现以下功能:

  jQuery("#element").click(function () {
       jQuery('#elementcontainer').load('/js/jquery.script.js');
       jQuery('#elementcontainer').load('/js/jquery.script2.js');
       jQuery(this).unbind('click');
    });
注意在
$(this)
(这是元素
#元素
)上调用的
unbind()
方法。您可以检查更多
unbind()
功能

您可以这样使用:

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()));
});
jQuery("#element").one('click', function () {
   jQuery.getScript('/js/jquery.script.js');
   jQuery.getScript('/js/jquery.script2.js');
});
只执行一次事件处理程序,
Date()
片段用于缓存。但是,我不确定您是否想要,如果您的目的只是获取/执行脚本,那么更合适,如下所示:

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()));
});
jQuery("#element").one('click', function () {
   jQuery.getScript('/js/jquery.script.js');
   jQuery.getScript('/js/jquery.script2.js');
});
dataType=“script”
(即)的请求


如果要缓存,您有两个选项,可以使用一次(但这会影响所有后续or调用):

或使用以下简称的完整呼叫版本:

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 });
});

好的,太酷了,我现在就试试:)我能用.getscript替换.load吗?我还希望脚本缓存。当前他们添加了?u=2312,但我也不想要?@Tom-是的,我添加了一个示例…如果您查看控制台,getscript将在封面下的查询字符串中添加时间,发生在这里:@Tom-他们需要添加那个…这就是他们指示浏览器不要缓存的方式,否则IE会特别抓住它们。@Nick Craver:+1对于缓存的事情,noobs会遇到问题,因为他们不知道在这些情况下会缓存请求。嘿,非常感谢Nick-如果我想缓存脚本?我可以用上面的代码做这个吗?i、 e.目前添加了?=2312,但我更希望它们被缓存?