2013-03-01 53 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

相關問題