javascript - 在 jquery 中导入另一个脚本

标签 javascript jquery

我有 contactus.js,其中定义了 sendMail(to) 函数。

我有main.js:

...

$('#ContactUs').click(function(){
  // how to execute /contactus.js, and when done, send mail? 
  sendMail(to);
});

...

但是,由于 main.js 用于网站的每个 HTML 页面,因此我不喜欢在 main.js 之前包含 contactus.js ,以免加载无用的脚本。

仅当单击#contactus 时,我才需要加载(执行)contactus.js。

编辑:

我在这里添加了一个Fiddle,来演示效果:

$(function() {
  console.log("ready!");
  
  $('#submit').click(function() {
    console.log("click start");
    
    $.getScript("http://parsleyjs.org/dist/parsley.js", function() {
      console.log("the object is: " + window.parsley);
    });
    
    console.log("click end");
  });
});
<form action="alert('done');" id="myForm">
  <input type="email" required>
  <div id="submit">submit</div>
</form>
我希望定义“window.parsley”,但没有...

最佳答案

使用jQuery.getScript ,如下所示。

Load a JavaScript file from the server using a GET HTTP request, then execute it.

$('#ContactUs').click(function(){
  // how to execute /contactus.js, and when done, send mail? 
    $.getScript("/contactus.js", function() {    
        sendMail(to);
    });
});

关于javascript - 在 jquery 中导入另一个脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29342551/

相关文章:

javascript - 根据选中的单选按钮展开和折叠 Accordion

jquery - 使用XML进行数据存储

javascript - 如何定义类似 JQuery $ 的函数?

javascript - 属性在 promise 内未定义

javascript - 浏览器可以阻止本地存储吗?

javascript - jqGrid showCol/hideCol 排序后不起作用

c# - 使用 Jquery Ajax 将 html 字符串传递到服务器端

javascript - 使用jquery替换函数

asp.net - 保护 Web 服务的侵入性最小的方法?

javascript - 在 javascript/jQuery 中动态更改元素的属性