2017-03-13 146 views
-1

我正在建立一個網站,有很多Ajax行動。大部分的導航都與ajax一起工作,也有很多操作。檢查點擊哪個鏈接的最佳方法是什麼?

這樣做,我使用真實鏈接(<a>標籤與真實href值),這可能導致目標頁面,即使沒有ajax。

我有很多鏈接和很多不同的可能操作。

我的問題是:我應該如何檢查哪個鏈接點擊在我的js(在表現方式)?

現在,我這樣做:

  • 鏈接有一個類(如 「鏈路行動」)
  • 我在js文件補充一點:jQuery(document).ready(function() { jQuery('body').on('click', '.link-action', action_ajax); });
  • 我有一個功能,如:

代碼

function action_ajax(e) { 
    e.preventDefault(); 
    var elem = jQuery(this), 
     href = elem.attr('href'); 

    // link 1 
    if(href.search(/\/connexion\//) !== -1) { 
    // action 1 
    } 
    // link 2 
    else if(href.search(/\/news\/page-\d+\//) !== -1) { 
    // action 2 
    } 
    // etc 
} 

它當然有效,但有很多不同的可能性來檢查。在很多情況下,我需要從鏈接中獲取一些數據(如頁面,ID等)。要做到這一點,我拆分href,並得到我所需要的。

我很確定有一個更好的方法來做到這一點:我的JavaScript的知識不是很大(這種語言是如此之大)。

Thx爲您的可能幫助或建議,並抱歉我的英語不好。

+0

你已經做到了這一點,你可能想搜索谷歌或更好地學習語言,我們不是在這裏爲您找到更好的辦法..如果你在新的方式在任何地方停留考慮發佈您的代碼,我們可能幫助你.. – user7417866

+0

好吧,我的壞@ user7417866。沒想到可以這樣做! – Vae

+0

這些行爲需要做什麼?根據點擊的鏈接更改請求(整頁與小塊)還是頁面上的更多處理? –

回答

1

在每個鏈接上使用data-屬性。只要他們擁有數據,它們可以是任何東西。

例:

<a id="myfirstLink" data-id="123" data-param="aParam">My first Link</a> 

要訪問這些值;

$("#myfirstLink").data(); //returns an object with the data attributes. 
+0

我有時使用'data-',但從來沒有想過在任何地方使用它。 ..不是一個壞主意。我會深深的這樣。謝謝 ! – Vae

+0

如果這對你有效,讓我知道:)標記爲解決方案將大大appriciated。如果您需要任何幫助,請留下另一條評論:) – matt

+1

我將在未來的日子裏爲之努力。如果它起作用並且似乎是一個很好的解決方案,我會將它作爲答案投票^^ Thx很多! – Vae

相關問題