Jquery:理解语法
Jquery : Understanding Syntax
我正在跟随tutsplus的Jquery视频讲座。在讲座中,讲师正在使用此代码来显示/隐藏联系人表单上的按钮,单击
var ContactForm = {
container: $('#contact'),
init: function(){
$('<button></button>', {
text:"Contact Us"
})
.insertAfter('article')
.on('click', this.show);
},
show: function () {
ContactForm.close.call(ContactForm.container);
ContactForm.container.show();
},
close: function() {
var $this = $(this);
console.log($this);
$('span.close').on('click',function (){
$this.hide();
});
}
};
我无法得到老师对这些点的解释,所以如果你能帮助我理解这个语法
init :function (), // i know about anonymous or named functions only
- 如何使用ContactForm访问close/show
- 我们这么说有什么区别?显示(在处理程序中)和
$(this).show
实际上,init: function() { }
根本不是一个匿名函数。我将尽力回答你问题的各个部分。
ContactForm
是一个对象,因此具有可以通过JS访问的属性和方法。例如,可以通过使用对象的字面名称从对象外部访问show()
和close()
方法,例如:
ContactForm.show();
ContactForm.close();
由于它是一个对象,您也可以通过在其内部使用this
关键字来引用它。例如,如果您想从init()
方法内部调用show()
方法,您可以这样做:
var ContactForm = {
init: function()
{
this.show(); // using this keyword.
},
show: function()
{
},
close: function()
{
}
}
在本例中,this
=== ContactForm
。但是,您指出的$(this)
语法用于从DOMElement对象创建jQuery对象(或集合)。例如,假设您希望将回调函数绑定到元素的click
事件:
$('a').on('click', function() {
$(this) // <-- This now holds a jQuery object representing the clicked element
});
因此,记住所有这些:
在show()
方法中,第一行调用ContactForm
对象的close()
方法。代码使用了函数的原型call()
方法,该方法允许我们在函数内部指定this
的值。因此,在下面一行:
ContactForm.close.call(ContactForm.container);
代码将ContactForm.container
(这是一个jQuery对象)发送给close()
方法,以便this
可以访问它:
var $this = $(this);
在close()
方法内部,this
now === $('#contact')
and not ContactForm
.
init函数是ContactForm上的函数,您将调用它将所有这些代码连接到DOM元素(因此初始化javascript)。您应该能够通过使用ContactForm.init()来访问它;在定义ContactForm的作用域中。与.show()和.close()函数一样,它们应该在ContactForm.show()中从定义ContactForm的作用域中可用。
正如另一个答案提到的,'this'指的是当前块的作用域,例如在这种情况下,使用click处理程序,它将指的是被单击的元素。'this'和'$(this)'之间的区别实际上只是后者被包装在jQuery选择器中,它将允许您访问jQuery函数,例如。show()和。hide()。这些在DOM元素本身上是不可用的。
- jQuery语法添加了var
- jQuery.getJSON失败,语法错误
- 这个jquery语法的功能是什么
- jQuery.html()方法语法
- jQuery AJAX Post方法错误(语法错误)
- 用jquery替换javascript语法
- JQuery代码语法问题?(“不允许内联控制结构”)
- jQuery中的匿名函数语法
- jquery 1.8.0语法错误,无法识别的表达式:>
- jQuery 选择器中的简单 jQuery 语法和串联
- Jquery 替换所有文本语法正则表达式中的变量
- JQuery AJAX 轮询语法
- 如何修复 jQuery 1.8“语法错误,无法识别的表达式”错误
- PubSub Design Pattern 的 Jquery 语法解释
- 使用带有返回的 Jquery 变量的正确语法
- Jquery 语法和变量
- jquery语法错误
- jQuery此语法或最接近的语法
- JavaScript/JQuery的语法是这样的
- jQuery:语法错误,无法识别的表达式:.Marketing&通讯