我有以下代码:
$(document).ready(function(){
$("button.continue").click(function(){
$(this).html("Hello!");
});
});
哪种方法很完美,但我想将整个事情变成这样的事情:
$(document).ready(function(){
$("button.continue").click().html("Hello!");
});
我的问题是:
答案 0 :(得分:5)
jQuery函数返回对象本身,因此您可以链接以下方法:
element.css('attribute', 'value').html('value').append('element').click(function() {});
但是当绑定一个事件处理程序时,.click()
所做的事情,它必须在事件发生时将逻辑存储在调用的回调中。
链接实际如何工作的一个例子:
var testObject = {
methodA : function() {
// some logic
return this;
},
methodB : function() {
// some logic
return this;
}
}
// you can than simply call
testObject.methodA().methodB();
答案 1 :(得分:0)
一个可以构建一个可以按照您的意愿工作的API,但事实上,这并不是jQuery的工作方式,也就是您正在使用的特定库。 jQuery click方法接受一个事件监听器函数,只要单击匹配的元素就会调用该函数。这是一种典型的函数式程序员模式,通常用于基于事件的现代UI中。
如果您认为这种代码风格有点难以理解,请尝试使用CoffeeScript,这种语言可以编译为javascript,并使这种常见模式更加便于实现。 CoffeeScript中的等价物将类似于:
$(document).ready ->
$('button.continue').click ->
$(this).html "Hello"
有关详细信息,请查看:http://coffeescript.org/