区别:
function show(){
alert('aaa');
}
show();   //==$(".div1").click($(".div2").slideToggle(3000));
setTimeout(show,2000);  //==$(".div1").click(function(){$(".div2").slideToggle(3000);});

解决方案 »

  1.   

    楼主,推荐一个jQuery的干货视频课程,讲了一些基础选择器、过滤性选择器、表单选择器,DOM元素,动画特效,UI型插件,工具类函数等,有兴趣的话去戳一下哈
    http://www.imooc.com/course/view/id/11
      

  2.   

    咋没反应了,
    更正:
    function show(){
    alert('aaa');
    }
    show();   
    setTimeout(undefined,2000);  //==$(".div1").click($(".div2").slideToggle(3000));//setTimeout(show,2000);  //==$(".div1").click(function(){$(".div2").slideToggle(3000);});
      

  3.   

    我看不懂您这段代码跟提的问题有什么关系,其实我想说的是 注释1 的代码中 我还没有点击 div1 它怎么就执行了 click() 这个方法,而我真正去点击 div1 时 它却没有执行 click 这个事件,可能是我没有表述清楚,还是很感谢您的回答
      

  4.   

    click([[data],fn])data:click([Data], fn) 可传入data供函数fn处理。fn:在每一个匹配元素的click事件中绑定的处理函数。
    注释1中 click中的参数就不符合要求,他不属于click的处理函数,所以页面载入时候就直接执行了
      

  5.   

    $(".div1").click($(".div2").slideToggle(3000));分解:
    $(".div2").slideToggle(3000);
    $(".div1").click();
      

  6.   

    function click(fn){
    //fn.call(this);
    alert(fn);
    }
    function my(){
    //return 'haha';
    return ;
    }
    click(my());
    click(my);
      

  7.   

    因为:$(".div1").click($(".div2").slideToggle(3000));等同$(".div2").slideToggle(3000),所以与$(".div1").click没关系了。