具有以下html

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

     this.do = function(e){
       alert("cool!");
     };
  });
 <script>
<div>


如何调用this.do(例如,从父元素单击按钮事件处理程序)?

也许更多信息将有助于建议正确的解决方案。这是一个插件,我希望标记和脚本都属于同一文件。我还希望能够执行以下操作:

插件外部的$("#plugin").*controller*.do();

这是一个受斯科特回答启发的候选解决方案:

<div>
 (function(){
   var plugin = $("#plugin");

   plugin.do = function(e){ alert("cool!"); };

 });
</div>


然后从外面:

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


有什么问题吗?

最佳答案

你为什么反对这样做?

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


你可以做:

<script>
   window.do = function(){
      ...
   }
</script>


然后是其他地方:

window.do()

07-24 17:22
查看更多