考虑您想为页面上的许多链接添加 ajax 功能。
<a href='http://domain/purchase/car' class='purchase'>Car</a>
<a href='http://domain/purchase/bag' class='purchase'>Bag</a>
<a href='http://domain/purchase/laptop' class='purchase'>Laptop</a>
和
<a href='http://domain/sell/car' class='sell'>Car</a>
<a href='http://domain/sell/bag' class='sell'>Bag</a>
<a href='http://domain/sell/laptop' class='sell'>Laptop</a>
现在您可以定义一些变量来引用 JavaScript 代码中的这些链接组:
var purchaseLinks = $('.purchase'),
sellLinks= $('.sell');
好吧,足够的故事;)。
您可以查看this fiddle和this one中的问题。
根据jQuery 的 add() 文档,返回值是一个新的 jQuery 对象。同样,附加到 jQuery 对象事件的函数处理程序中的 AMAIK 引用this
DOM 元素。
为什么通过使用add()
方法,this
处理函数的引用document
?我不明白。我无法根据我的知识做出合乎逻辑的看法。换句话说:
jQueryObject1.click(function(){
// Here, $(this) is the jQuery object
});
jQueryObject2.click(function(){
// Here again, $(this) is the jQuery object
});
jQueryObject1.add(jQueryObject2).click(function(){
// Here $(this) refers to the Document, why?
// I think jQueryObject1.add(jQueryObject2) should equal jQueryObject3
});
更新:
感谢您的回答。我再次向读者推荐 Live is Deprecated页面,以便每个人都可以改进。