Javascript 如何调用嵌入HTML元素的脚本

Javascript 如何调用嵌入HTML元素的脚本,javascript,html,dom,Javascript,Html,Dom,具有以下html: <div id="plugin"> <script> (function(){ this.do = function(e){ alert("cool!"); }; }); <script> <div> 然后从外部: $("#plugin").do(); 有什么问题吗?你不能。外部函数表达式不会在任何地方调用或赋值,因此它将被丢弃,而不会对内部函数表达式求值 如果要将函数绑

具有以下
html

<div id="plugin">
 <script>
  (function(){

     this.do = function(e){
       alert("cool!");
     };
  });
 <script>
<div>
然后从外部:

   $("#plugin").do();

有什么问题吗?

你不能。外部函数表达式不会在任何地方调用或赋值,因此它将被丢弃,而不会对内部函数表达式求值


如果要将函数绑定到某个位置,请对要将其分配给的元素调用
addEventListener
,并将其作为第二个参数传递。

您不能。外部函数表达式不会在任何地方调用或赋值,因此它将被丢弃,而不会对内部函数表达式求值


如果要将函数绑定到某个位置,请对要将其分配给的元素调用
addEventListener
,并将其作为第二个参数传递。

您不能。外部函数表达式不会在任何地方调用或赋值,因此它将被丢弃,而不会对内部函数表达式求值


如果要将函数绑定到某个位置,请对要将其分配给的元素调用
addEventListener
,并将其作为第二个参数传递。

您不能。外部函数表达式不会在任何地方调用或赋值,因此它将被丢弃,而不会对内部函数表达式求值


如果要将函数绑定到某个位置,请对要将其分配给的元素调用
addEventListener
,并将其作为第二个参数传递。

这看起来是不可能的,因为包装器函数没有名称,也不会自动执行。所以代码永远不会运行。如果它将运行,则全局函数中的
this
关键字将引用
窗口
对象,并且内部函数将全局可用

(function(){

    this.do = function(e){
        alert("cool!");
    };
})(); // <-- additional parentheses to self-execute the wrapper function

window.do === do; // true

// use
do();
// or
window.do();
// to call the inner function

这看起来是不可能的,因为包装器函数没有名称,并且不会自动执行。所以代码永远不会运行。如果它将运行,则全局函数中的
this
关键字将引用
窗口
对象,并且内部函数将全局可用

(function(){

    this.do = function(e){
        alert("cool!");
    };
})(); // <-- additional parentheses to self-execute the wrapper function

window.do === do; // true

// use
do();
// or
window.do();
// to call the inner function

这看起来是不可能的,因为包装器函数没有名称,并且不会自动执行。所以代码永远不会运行。如果它将运行,则全局函数中的
this
关键字将引用
窗口
对象,并且内部函数将全局可用

(function(){

    this.do = function(e){
        alert("cool!");
    };
})(); // <-- additional parentheses to self-execute the wrapper function

window.do === do; // true

// use
do();
// or
window.do();
// to call the inner function

这看起来是不可能的,因为包装器函数没有名称,并且不会自动执行。所以代码永远不会运行。如果它将运行,则全局函数中的
this
关键字将引用
窗口
对象,并且内部函数将全局可用

(function(){

    this.do = function(e){
        alert("cool!");
    };
})(); // <-- additional parentheses to self-execute the wrapper function

window.do === do; // true

// use
do();
// or
window.do();
// to call the inner function

你为什么反对这样做

 <script>
   function do(){
      alert('cool!');
   }
 <script>

你为什么反对这样做

 <script>
   function do(){
      alert('cool!');
   }
 <script>

你为什么反对这样做

 <script>
   function do(){
      alert('cool!');
   }
 <script>

你为什么反对这样做

 <script>
   function do(){
      alert('cool!');
   }
 <script>


我可以通过使用$(“#plugin”).do=function(){}来降低插件本身的作用域吗?当然我应该能够在它之后调用$(“#plugin”).fo吗?现在你想向jQuery添加一个可以在任何jQuery对象上执行的函数-你完全改变了你试图做的事情,我将为您提供一个解决方案您知道您可以链接Jquery函数吗。hasClass().css().removeClass()-这是因为所有这些函数都期望并返回相同的内容。你应该在谷歌上为jQuery插件添加功能——这可能是一个更合适的答案。它不是一个jQuery插件,它是一个概念上的插件,它独立存在,但可以加载和操作……听起来像。。。在这里,这取决于jQuery,因此我称之为jQuery插件,我认为谷歌可以帮助我通过使用$(“#plugin”).do=function(){}来降低插件本身的范围。当然,我应该能够在它之后调用$(“#plugin”).fo?现在你想给jQuery添加一个函数,这可以在任何jQuery对象上执行-您完全改变了您试图执行的操作,我将为您提供一个解决方案您知道您可以链接jQuery函数吗。hasClass().css().removeClass()-这是因为所有这些函数都期望并返回相同的内容。你应该在谷歌上为jQuery插件添加功能——这可能是一个更合适的答案。它不是一个jQuery插件,它是一个概念上的插件,它独立存在,但可以加载和操作……听起来像。。。在这里,这取决于jQuery,因此我称之为jQuery插件,我认为谷歌可以帮助我通过使用$(“#plugin”).do=function(){}来降低插件本身的范围。当然,我应该能够在它之后调用$(“#plugin”).fo?现在你想给jQuery添加一个函数,这可以在任何jQuery对象上执行-您完全改变了您试图执行的操作,我将为您提供一个解决方案您知道您可以链接jQuery函数吗。hasClass().css().removeClass()-这是因为所有这些函数都期望并返回相同的内容。你应该在谷歌上为jQuery插件添加功能——这可能是一个更合适的答案。它不是一个jQuery插件,它是一个概念上的插件,它独立存在,但可以加载和操作……听起来像。。。在这里,这取决于jQuery,因此我称之为jQuery插件,我认为谷歌可以帮助我通过使用$(“#plugin”).do=function(){}来降低插件本身的范围。当然,我应该能够在它之后调用$(“#plugin”).fo?现在你想给jQuery添加一个函数,这可以在任何jQuery对象上执行-您完全改变了您试图执行的操作,我将为您提供一个解决方案您知道您可以链接jQuery函数吗。hasClass().css().removeClass()-这是因为所有这些函数都期望并返回相同的内容。你应该在谷歌上为jQuery插件添加功能——这可能是一个更合适的答案。它不是一个jQuery插件,而是一个概念上的插件,一个独立存在但可以加载的插件