如何从单击功能或事件发生时访问jquery功能

时间:2017-11-08 13:05:56

标签: jquery

我有以下jquery函数,当我在其中包含click功能时工作非常好但是当我在主函数之外添加它时它不起作用,请问我该如何有效地修复工作?

示例1



   (function tryBarSlot() {
    		function getit(){
    			alert('HH');
    		}
       /* Using the onclick function here works*/
        $('#play_button').click(function(event) {
    		 getit();
    	});
      
    })();
    	

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<button id="play_button">TRY</button>
&#13;
&#13;
&#13;

示例2

&#13;
&#13;
 (function tryBarSlot() {
    		function getit(){
    			alert('HH');
    		}
    })();
    	
    $(function(){
         //getit(); /*OR*/
    	$('#play_button').click(function(event) {
    		getit();
    	});
    });
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<button id="play_button">TRY</button>
&#13;
&#13;
&#13;

我希望这个例子有用。

4 个答案:

答案 0 :(得分:0)

错误信息非常明确:&#34; getit未定义&#34;。 getit尚未定义,因为它超出了您当前所在的范围。

  

JavaScript具有函数范围:每个函数都创建一个新范围。   范围确定这些变量的可访问性(可见性)。   函数内定义的变量不可访问(可见)   在功能之外。

在您的秒代码示例中,您使用$(function()创建一个新范围,因此getit不再可访问

答案 1 :(得分:0)

  1. 你可以这样。从单击的处理程序
  2. 中调用命名函数

    &#13;
    &#13;
    $('#play_button').click(getit);
    
    function getit() {
      alert('HH');
    }
    &#13;
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
    <button id="play_button">TRY</button>
    &#13;
    &#13;
    &#13;

答案 2 :(得分:0)

如果您想从window.getit = getit

的任何地方访问它

&#13;
&#13;
 (function tryBarSlot() {
    		function getit(){
    			alert('HH');
    		}
            window.getit = getit;
    })();
    	
    $(function(){
         //getit(); /*OR*/
    	$('#play_button').click(function(event) {
    		getit();
    	});
    });
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<button id="play_button">TRY</button>
&#13;
&#13;
&#13;

答案 3 :(得分:0)

这应该有用。

&#13;
&#13;
[__C.NSLinguisticTagScheme(_rawValue: TokenType),
     __C.NSLinguisticTagScheme(_rawValue: Language),
     __C.NSLinguisticTagScheme(_rawValue: Script)]
&#13;
var getit;
(function tryBarSlot() {
      getit = function(){
        alert('HH');
      }
})();
    	
$(function(){
     //getit(); /*OR*/
  $('#play_button').click(function(event) {
    getit();
  });
});
&#13;
&#13;
&#13;