2014-01-29 36 views
1

我在jquery上相當體面,但我正在做一些我想成爲基於標準的東西。我不斷遇到的問題是。什麼html標籤用來綁定到一個點擊事件。按鈕,跨度,錨標籤,divs或其他東西。第一。我可以將一個錨標籤放在href =「#」中,但是當它點擊它時,它會顯示在url中。我不知道爲什麼困擾我,但它確實如此。什麼是jQuery點擊事件最合適的html標籤?

是否有任何速度優勢超過另一個,或者有一個標準的原因,你會選擇一個超過錨標籤或跨度的按鈕。

欣賞建議。有沒有一個地方有一個很好的標準實踐清單,任何人都可以指點我?我搜索過了,每個人似乎都有不同的方法。

+0

您可以更具體地瞭解被點擊的點擊事件嗎?實際上沒有什麼「正確」的元素應該綁定點擊 - 這取決於點擊事件的內容,例如,如果您需要在按鈕上放置所有點擊事件,則沒有意義將所有點擊事件放在跨度上,並且在那裏如果你正在爲一個div製作動畫,在文本元素上放置點擊事件是沒有意義的。 –

+0

我正在處理類似於其他任何社交網絡的帖子/評論部分。你可以喜歡帖子,發表評論,如評論。我偶然注意到,過了一會兒,這件東西里有數百個錨標籤。我只是想以最有效的方式來做到這一點。我想我會問。似乎共識是沒有正確的方式,只是取決於情況。我感謝大家的幫助!謝謝! –

回答

2

我不認爲有什麼元素應該是處理點擊事件的指定標籤。例如,點擊時顯示子菜單的菜單應該使用< ul>和< li>標籤,而表單驗證按鈕則由<按鈕>元素表示。

通常我會嘗試使用與我顯示給用戶的含義最相關的元素。

1

我會說,這是有點openended不幸的。基本上我會總結答案是:

將您的點擊事件綁定到任何最能體現用戶體驗的位置/爲最終用戶提供最好的易用性,而無需執行額外的樣式,例如讓div看起來像一個按鈕。

這就是說,大多數用戶將期望點擊一個按鈕或錨點,並有較少的自動點擊其他元素。爲了使錨點看起來更好,你可以使用一個虛假的鏈接,近似你正在做的,然後做一個event.PreventDefault()電話。

1

你應該做任何語義最好的作品

在給定的上下文中有意義嗎?有時候一個按鈕是最好的解決方案,有時它是一個錨鏈接。

在單頁應用程序中,即使您實際上沒有發送任何請求,仍然使用鏈接。但是你要堅持使用它們,因爲它們對用戶有意義,因爲他們知道鏈接用於瀏覽你的網站 - 改變瀏覽器的歷史。

按鈕應該當你想要的東西發生無關導航使用時,就像打開一個模式,toggeling功能等

雖這麼說,你可以做任何你想要的! HTML只不過是語義。畢竟,瀏覽器解釋你的HTML的含義,並且你無能爲力。沒有這樣或那樣的技術理由。

+0

不錯。你是對的,這只是我的強迫症殺死了我。如果我可以設計一個錨點並按鈕相同。哪一個是最好的。我會服用我的藥片並使用任何有意義的東西。謝謝! :) –

1

嘗試爲您正在嘗試執行的操作使用最明智的HTML元素,這是語義html。

例如,如果它是一個操作使用一個按鈕,如果它是導航使用一個錨標記。

對於你的錨標籤,也許你執行你的點擊事件的方式更多的問題試試這個來防止#出現在url中。

$('.myanchor').click(function(event){ 
    event.preventDefault(); 
    // do something. 
});