Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么我的点击处理程序可以在文档上运行?_Javascript_Jquery - Fatal编程技术网

Javascript 为什么我的点击处理程序可以在文档上运行?

Javascript 为什么我的点击处理程序可以在文档上运行?,javascript,jquery,Javascript,Jquery,好的,我已经为div单击设置了一个处理程序,但出于某种原因,它会在document.ready上触发,我真的不知道为什么。这是我的密码: function statusCallback(status){ //THIS IS THE JSONP CALLBACK RECEIVED FROM THE SERVER if(status.title==null){ $('#core').attr('class','play'); $('#button').

好的,我已经为div单击设置了一个处理程序,但出于某种原因,它会在
document.ready
上触发,我真的不知道为什么。这是我的密码:

function statusCallback(status){
    //THIS IS THE JSONP CALLBACK RECEIVED FROM THE SERVER
    if(status.title==null){
        $('#core').attr('class','play');
        $('#button').animate({marginLeft:'350px'},2000,'easeOutCubic',function(){
            $('#button').click(initialBinder());
        });
    }else{

    }
}
function initialBinder(){
    $('#button').unbind('click');
    $('#core').attr('class','load');
    $('#button').animate({marginLeft:'0px'},2000,'easeOutCubic',function(){
        $.ajax({
            url:'http://24.182.211.76/status.php',
            crossDomain:true,
            dataType:'jsonp'
        });
    });
}
$(document).ready(function(event){
    $('#button').click(initialBinder());
});
更改:

$('#button').click(initialBinder());
致:

前者将实际调用函数,而不是返回指向它的函数指针

也许这段代码可以澄清其中的区别:
function foo(x,y)//我是function foo,我像boss一样添加两个数字
{
返回x+y;
};
var x=foo(1,1)//x是2,因为我们调用了函数
变量y=foo//y是对函数foo的引用,没有括号
var z=y(1,1)//z是2,因为我们通过引用y调用了foo
document.write('x='+x+'
z='+z)
您没有将函数作为回调引用,而是调用函数。

请尝试从bind语句中删除paren,如下所示:

$(document).ready(function(event){
    $('#button').click(initialBinder);
});

发生的情况是函数正在执行,而不是作为参数传递。

成功了!我从来不知道。谢谢@泰格里尔-是的,我当时正在拼命打字!:)
$('#button').click(initialBinder);
$(document).ready(function(event){
    $('#button').click(initialBinder);
});