2013-03-01 52 views
0

我在我的网页上有很多链接。约25个链接,id =“reply_x”。约20个id =“quote_x”的链接和一些id =“like_x”的链接。我使用JQuery为不同的链接组编写了不同的函数。当有人点击任何具有reply_x id的链接时,一个函数将运行,另一个函数将运行在任何链接上,并且其id为quote_x。现在我想让我的网页高效。那么运行这些函数的最有效方法是什么?哪个是链接上运行功能的最有效方式点击

我已经使用了以下方法。

$(document).ready(function(){ 
    $('#reply_x').click(function() { 
    // function statements 
    }); 
}); 

这是一种有效的方法吗?如果不是哪个更有效的方式来运行该功能。

+0

你是什么意思的.reply元素通过高效率在这里...... ??你显然需要在dom准备好时绑定这些点击事件。 – 2013-03-01 06:19:33

+0

[活动委托](http://api.jquery.com/on/)更高效,更轻松。为所有这些回复链接添加一个公共类,然后使用'$(document.body).on('click','a.reply',function(){})''。 – DCoder 2013-03-01 06:19:56

+0

通过使用一个id作为选择器,它只会选择给定选择器的第一个匹配元素。要使这个点击函数触发reply_x和quote_x的所有链接,请将这些值添加为类。 – iAmClownShoe 2013-03-01 06:58:00

回答

1

首先,ID必须是唯一的,所以应该只一个reply_x ID属性的元素,但我会假设_x实际上是一个数字。这将得到不必键入所有这些绑定的手指艰难的,所以你应该让所有的人一类,而不是:reply

$(".reply").on('click', function() {}) 

此结合该事件的所有元素,所以它可能不会是最高效。如果它们都包裹在同一容器中,你可以使用:

$("#container").on('click', '.reply', function() {}) 

...这似乎是更有效的,只要#container接近基于this answer

+0

假设我有.replay类。然后,我应该在哪里运行tihs $(“#container”)。on('click','.reply',function(){})函数。我的意思是document.ready或window.onload或其他地方? – 2013-03-01 08:43:42