Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.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
关于nettuts的四个问题“;30天学习jquery“;_Jquery_This_Init_Var - Fatal编程技术网

关于nettuts的四个问题“;30天学习jquery“;

关于nettuts的四个问题“;30天学习jquery“;,jquery,this,init,var,Jquery,This,Init,Var,我正在网上做一个免费的jQuery课程,名为Jeffrey Way的30天学习jQuery,我有四件事真的很困惑,首先是代码: (function() { $('html').addClass('js'); var contactForm = { container: $('#contact'), init: function() { $('<button></button>', {

我正在网上做一个免费的jQuery课程,名为Jeffrey Way的30天学习jQuery,我有四件事真的很困惑,首先是代码:

(function() {
    $('html').addClass('js');

    var contactForm = {
            container: $('#contact'),

        init: function() {
            $('<button></button>', {
                text: 'Contact Me'
            })
                .insertAfter('article:first-child   ')
                .on('click', this.show);
            },
        show: function() {
            contactForm.container.slideDown(500);
        }                       
    };

    contactForm.init(); 

})();
(函数(){
$('html').addClass('js');
var contactForm={
容器:$(“#联系人”),
init:function(){
$('', {
短信:“联系我”
})
.insertAfter('条款:第一个孩子')
.on('click',this.show');
},
show:function(){
contactForm.container.slideDown(500);
}                       
};
contactForm.init();
})();
当你点击网站上的“联系我”按钮时,它基本上会滑下一张联系表。我的问题是:

  • “init”的全部意义是什么?你需要它吗
  • 为什么整个jquery代码都在一个变量中
  • 显示
    .on('click',this.show')的代码字符串上为什么在
    此中需要
    。显示
  • 最后,为什么需要
    contactForm.container.slideDown(500)就像为什么你不能说
    container.slideDown(500)
    $('form.contact')。向下滑动(500)(顺便说一下,向下滑动的表单id是
    联系人
  • “init”的全部意义是什么?你需要它吗

    这段代码正在创建一个javascript对象,其中包含一个名为
    init
    的函数,然后调用该函数。您可以同样轻松地将这段代码移到对象之外,但这样您就无法重用它,也无法使用它做其他面向对象的事情

    为什么整个jquery代码都在一个变量中

    在Javascript中(不仅仅是jQuery)一切都是一个对象。函数是一个对象,对象是对象,等等。这段代码正在创建一个包含3个变量的对象:
    container
    ,它存储一个jquery对象;
    init
    ,它存储一个函数;
    show
    ,它存储一个函数。然后将此变量分配给
    contactform
    变量

    在写有.on('click',this.show')的代码字符串上;为什么在this.show中需要这个

    this.show
    引用了
    this
    对象上的
    .show()
    方法。在此上下文中
    this
    contactForm
    对象,而
    show
    是作为对象传递(但未调用)的show函数。其效果是单击按钮时,调用show函数

    最后,为什么需要contactForm.container.slideDown(500);就像为什么不能只说container.slideDown(500)或$('form.contact').slideDown(500);(顺便说一句,向下滑动的表单的id是contact)

    因为
    container
    是属于contactform对象的属性(即变量)。您可以执行类似
    $('#contact')。向下滑动(500)
    的操作,但您已经在
    contactform.container
    中引用了
    $('#contact')
    ,不使用它将导致不必要的开销