Jquery的ajax方法的$.getScript可以用来从远程位置加载和执行javascript ...它是否也可以用来加载javascript,然后在基于用户操作使用ajax加载的元素上发生某些事件时执行它?
感谢并问候……
发布于 2009-11-19 14:29:15
目标是让脚本绑定到尚未加载的元素,还是减少对远程脚本的调用次数?
如果是第一个,您不需要保存脚本以供以后执行,只需将$.getScript()放入另一个函数中,并将您想要的事件绑定到该函数:
function executeScript() {
$.getScript("somescript.js",
blah blah blah
);
}
$(".post_loaded_elements").hover(executeScript);但是,如果脚本位于某个远程服务器上,并且您不希望每次用户将鼠标悬停在某个元素上时都进行远程调用,则可能需要使用某种序列化方法,在这种方法中,您将使用另一个ajax方法请求脚本的内容,然后反序列化并运行它。这将使用与上面相同的设置,只是多了一个步骤,即检索脚本并将其序列化为一个变量,该变量在函数中被反序列化。我将快速检查一下,看看在jquery中序列化是否相当简单。
发布于 2009-11-19 14:33:44
$.getScript将加载并执行Javascript。如果您只想加载Javascript,则必须将Javascript放入一个函数中,然后在将来发生事件时执行该函数。
假设您调用:
$.getScript('http://example.com/hello.js');它包含以下内容:
function Hello() {
alert('hello');
}Javascript将被执行,但由于警报在函数中,因此不会运行它。直到您调用函数Hello(),它才会运行。因此,对于第二部分,假设您希望连接它,以便在单击链接时运行Hello()函数。您可以提供一个回调函数,以便在Javascript加载后运行。所以你可以这样做:
$.getScript('http://example.com/hello.js', function() { Hello(); });加载脚本后,将在您的链接上设置一个单击事件处理程序,该处理程序将调用Hello函数。
发布于 2009-11-19 14:44:55
是的,这是可能的。我做了以下脚本,它由三个文件组成,界面,当用户单击按钮2时从外部文件加载的html文本框,以及当用户单击第一个按钮并警告文本框的值时加载的外部脚本,该文本框在脚本之前加载,但在文档加载之后加载。
单击按钮2,在文本框中键入内容,然后单击按钮1,这是代码。
html页面(界面)
<button id="b1">button 1</button>
<button id="b2">button 2</button>jquery
$(document).ready(function(){
$("#b1").click(function(){
$.getScript('externalscript.js');
});
$("#b2").click(function(){
$("#load").load('test.html');
});
});加载的元素
<input type="text" id="text" />外部脚本
alert($("#text").val());https://stackoverflow.com/questions/1761231
复制相似问题