首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jquery Ajax $.getScript()方法

Jquery Ajax $.getScript()方法
EN

Stack Overflow用户
提问于 2009-11-19 14:14:13
回答 3查看 7.7K关注 0票数 3

Jquery的ajax方法的$.getScript可以用来从远程位置加载和执行javascript ...它是否也可以用来加载javascript,然后在基于用户操作使用ajax加载的元素上发生某些事件时执行它?

感谢并问候……

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-11-19 14:29:15

目标是让脚本绑定到尚未加载的元素,还是减少对远程脚本的调用次数?

如果是第一个,您不需要保存脚本以供以后执行,只需将$.getScript()放入另一个函数中,并将您想要的事件绑定到该函数:

代码语言:javascript
复制
function executeScript() {
     $.getScript("somescript.js", 
          blah blah blah
          );
 }

$(".post_loaded_elements").hover(executeScript);

但是,如果脚本位于某个远程服务器上,并且您不希望每次用户将鼠标悬停在某个元素上时都进行远程调用,则可能需要使用某种序列化方法,在这种方法中,您将使用另一个ajax方法请求脚本的内容,然后反序列化并运行它。这将使用与上面相同的设置,只是多了一个步骤,即检索脚本并将其序列化为一个变量,该变量在函数中被反序列化。我将快速检查一下,看看在jquery中序列化是否相当简单。

票数 2
EN

Stack Overflow用户

发布于 2009-11-19 14:33:44

$.getScript将加载并执行Javascript。如果您只想加载Javascript,则必须将Javascript放入一个函数中,然后在将来发生事件时执行该函数。

假设您调用:

代码语言:javascript
复制
$.getScript('http://example.com/hello.js');

它包含以下内容:

代码语言:javascript
复制
function Hello() {
  alert('hello');
}

Javascript将被执行,但由于警报在函数中,因此不会运行它。直到您调用函数Hello(),它才会运行。因此,对于第二部分,假设您希望连接它,以便在单击链接时运行Hello()函数。您可以提供一个回调函数,以便在Javascript加载后运行。所以你可以这样做:

代码语言:javascript
复制
$.getScript('http://example.com/hello.js', function() { Hello(); });

加载脚本后,将在您的链接上设置一个单击事件处理程序,该处理程序将调用Hello函数。

票数 8
EN

Stack Overflow用户

发布于 2009-11-19 14:44:55

是的,这是可能的。我做了以下脚本,它由三个文件组成,界面,当用户单击按钮2时从外部文件加载的html文本框,以及当用户单击第一个按钮并警告文本框的值时加载的外部脚本,该文本框在脚本之前加载,但在文档加载之后加载。

单击按钮2,在文本框中键入内容,然后单击按钮1,这是代码。

html页面(界面)

代码语言:javascript
复制
<button id="b1">button 1</button>
<button id="b2">button 2</button>

jquery

代码语言:javascript
复制
$(document).ready(function(){
    $("#b1").click(function(){
        $.getScript('externalscript.js');
    });
    $("#b2").click(function(){
        $("#load").load('test.html');
    });


});

加载的元素

代码语言:javascript
复制
<input type="text" id="text" />

外部脚本

代码语言:javascript
复制
alert($("#text").val());
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1761231

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档