我不得不通過在JavaScript中的所有項目類似幫助AJAX和HTML
<div class="menu">
<div>Latest</div>
<div>Oldest</div>
</div>
我環路的HTML代碼,並在它們綁定click事件偵聽器。現在在事件回調中,我想知道通過AJAX獲取哪些數據。我如何從一個項目中得出結論?我知道我應該在物品中加入一些東西來確定物品的類型,但是我在哪裏放?
我不得不通過在JavaScript中的所有項目類似幫助AJAX和HTML
<div class="menu">
<div>Latest</div>
<div>Oldest</div>
</div>
我環路的HTML代碼,並在它們綁定click事件偵聽器。現在在事件回調中,我想知道通過AJAX獲取哪些數據。我如何從一個項目中得出結論?我知道我應該在物品中加入一些東西來確定物品的類型,但是我在哪裏放?
如果你只使用div
S,使用className
將是方便和有效。就像這樣:
<div class="menu">
<div class="latest">Latest</div>
<div class="oldest">Oldest</div>
</div>
...
function divClickHandler(event) {
var div = event.target;
if (div.className == 'latest')
// load latest
else if (div.className == 'oldest')
// load oldest
}
如果您使用HTML5,一個更好的解決辦法是使用custom data- attributes;像這樣:
<div class="menu">
<div data-type="latest">Latest</div>
<div data-type="oldest">Oldest</div>
</div>
最優雅的解決辦法是使用a
標記而不是div
S和攔截他們點擊:
<div class="menu">
<a href="?whatever">Latest</a>
<a href="?barfoo">Oldest</a>
</div>
...
function aClickHandler(event) {
var a = event.target;
// do your ajax call using a.href
return false;
}
我不是100%確定你在問什麼。但是,如果您希望將「用戶數據」放在元素上,您可以只使用一個屬性並在JavaScript中選擇屬性。
<div class="menu">
<div userdata="Latest">Latest</div>
<div userdata="Oldest">Oldest</div>
</div>
這樣做時,請使用符合HTML 5的'data- ...'屬性。 – 2010-10-29 08:59:35
你可以通過class和id指定。例如。
<div class="menu">
<div class="latest">Latest</div>
<div class="oldest">Oldest</div>
</div>
在循環中用element.className
進行測試。
指定您所指的是什麼樣的元素會是有益的。
但是,您可以從其ID識別一個元素。或者你可以指定你自己的屬性並檢索它。
例子:
HTML:
<button id='mybtn' attr1='123'>click here</button>
的javascript:
$("#mybtn").bind('click', function() {
var attr = $(this).attr('attr1');
// use attr value for any specific logic
});
你不能給每個div的ID和使用,以確定應被檢索什麼信息?我認爲你想調用一個單一的服務器端腳本,並希望傳入一個參數?另外,將菜單標記爲列表而不是很多div會更加語義化。 – 2010-10-29 08:57:29