onclick事件不运行jQuery函数

时间:2016-10-12 00:02:52

标签: jquery function onclick

我有一个html文件,它正确链接到js文件(以及jquery库文件)。

<input type="button" onclick="practice();" id="intro_next_button" value="Practice"/>

在js文件中:

$(window).load(function(){
    function practice(){
        alert("WORKS");
    }
});     

如果函数练习在$(window).load(function()之外,则会运行,但不在它内部时。有很多类似的问题,但是我没有找到一个特别关于onclick event的问题,但只能在jquery $(window).load(function()内部工作。

3 个答案:

答案 0 :(得分:2)

这不起作用,因为在功能块内定义的任何内容(即通过关键字function或var)都应用该块作为其范围。因此,如果您在块内创建一个变量x,那么您将无法获得该值。

var x = 2;
function test() { var x = 5; }
console.log(x);

打印2。

这些也是竞争风格。通常,如果您使用window.onload或&#34;改进&#34; jQuery $(document).ready你在函数体中绑定事件。

$("#intro_next_button").click(function() { alert("WORKS"); });

答案 1 :(得分:2)

您正在做的是在函数内部定义一个函数,该函数作为参数传递给load()。

onclick正在窗口范围内寻找practice()。

为什么要在加载页面时定义函数?等到加载所以用户可以点击它? 如果是这样,试试这个:

$(window).load(function(){
  window.practice = function(){
    alert("WORKS");
  }
});

答案 2 :(得分:1)

在这种情况下,您的功能仅在您在load中定义的无限功能中可见。您应该使用click中的jquery load附加一个onclick事件(并删除onclick属性):

  $('#buttonid').click(function(){practice();});