Javascript 使用jQuery动态重新加载或切换外部js文件
我有一个网页,我有一个外部js文件,动画一些div。我想在页面上放置一个按钮,从一开始就重新加载js文件,这样它可以停止函数并从头开始。 我尝试给脚本标记id“animation”,然后使用以下命令Javascript 使用jQuery动态重新加载或切换外部js文件,javascript,jquery,external,reload,Javascript,Jquery,External,Reload,我有一个网页,我有一个外部js文件,动画一些div。我想在页面上放置一个按钮,从一开始就重新加载js文件,这样它可以停止函数并从头开始。 我尝试给脚本标记id“animation”,然后使用以下命令 $(document).ready(function() { $(".button").click(function() { $("#animation").attr('src','map.js'); }); } ); 不用说,这是行不通的。想知道如何正确地做到这一点 这确实不是一件
$(document).ready(function() {
$(".button").click(function()
{
$("#animation").attr('src','map.js');
});
}
);
不用说,这是行不通的。想知道如何正确地做到这一点 这确实不是一件好事情,制作一个启动和停止动画的函数要好得多。但如果你真的必须这样做:
这并不是一件好事,制作一个启动和停止动画的函数要好得多。但如果你真的必须这样做:
您是否尝试过使用
.load('map.js')代码>?是的,但运气不好。这会不会只是加载两次,而不停止原始文件?您是否尝试过使用.load('map.js')代码>?是的,但运气不好。我明白了,这不只是加载两次,而不是停止原版吗。是的,我通常不会这样做,但页面有不同的动画,需要重新启动。特定div区域中的内容由不同的js文件控制,每个动画都需要有一个重新加载按钮,而不必重新加载页面的其余部分。$(document).ready(function(){count=0;$(.button”)。单击(function(){//显然,要针对特定脚本,只需更改此选择器$('map.js').each(function(){var js_src=$(this.attr('src');$(this.attr('src'),'');reload(this,js_src);});function reload(el,js_src){count++$(el.attr('src',js src+“?”+count);});谢谢你的帮助。我似乎无法让它工作。我想我并没有错误地关闭函数或在某个地方感到困惑。我想到了一个更好的方法,请参见上面编辑的答案。这样说似乎很简单。谢谢你,尼基。是的,我通常不会这样做,但页面有不同的动画,需要重新启动。特定div区域中的内容由不同的js文件控制,每个动画都需要有一个重新加载按钮,而不必重新加载页面的其余部分。$(document).ready(function(){count=0;$(.button”)。单击(function(){//显然,要针对特定脚本,只需更改此选择器$('map.js').each(function(){var js_src=$(this.attr('src');$(this.attr('src'),'');reload(this,js_src);});function reload(el,js_src){count++$(el.attr('src',js src+“?”+count);});谢谢你的帮助。我似乎无法让它工作。我想我并没有错误地关闭函数或在某个地方感到困惑。我想到了一个更好的方法,请参见上面编辑的答案。这样说似乎很简单。谢谢你,尼克
$(".button").click(function( e ) {
//change this to the id of your script
$('#the_script').remove();
var script = document.createElement('script');
script.id = 'the_script';
//the script's source here
script.src = 'test_js.js';
script.type ='text/javascript';
document.getElementsByTagName('head')[0].appendChild(script);
});