Jquery点击没有功能

时间:2013-02-18 23:21:33

标签: jquery

我有以下代码:

$(document).ready(function(){    
    $("button.continue").click(function(){
        $(this).html("Hello!");
    });
});

哪种方法很完美,但我想将整个事情变成这样的事情:

$(document).ready(function(){    
    $("button.continue").click().html("Hello!");
});

我的问题是:

  1. 我可以使用click()和以下事件,在这种情况下是html()吗(不转向功能部分)?
  2. 如果没有,为什么我不能这样做,因为我会想到这背后的运作,如: 当用户单击所选元素时,将其中的HTML文本更改为其他内容。
  3. 如果这不是思考或推理其背后的逻辑的方式,我应该如何处理这个

2 个答案:

答案 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/