2011-07-17 70 views
0

我有一個onclick屬性ontag現在獲取設置與REQUIRED_ID服務器,當用戶點擊它。
現在的問題是,我正在嘗試更多的類似jqery的方法,我在文檔上設置了點擊處理程序,但現在我沒有REQUIRED_ID來設置它。
我想知道如何做到這一點的jquery方式,也許用REQUIRED_ID設置另一個標籤,並準備好讀取它?jquery設置每個元素的信息點擊處理程序

NOW:

$.ready(
    $('select.attr_satus>option:not(:selected)').each( 
     /* I AM MISSING REQUIRED_ID, WHERE DO I GET THIS VVVVVV*/ 
     $(this).click(function(){ statusChanged(this,REQUIRED_ID,$(this).val()); }) 
    ); 
); 

BEFORE:

<select class="attr_status"> 
<option onClick='statusChanged(this,REQUIRED_ID,"draft");' value='draft'>Draft</option> 
<option value='publish' selected="true">Published</option> 
</select> 

REQUIRED_ID是每行改變,因爲我有幾個選擇那些標籤中的一個後,對方的ID。

+0

這可能有助於指定什麼'REQUIRED_ID'代表,它是一個會話ID「名稱:值」符號,用戶ID,別的東西?它可以通過ajax從服務器端腳本設置/檢索嗎? –

+0

我剛剛編輯它,但ID意味着rowid,像postid,我可能隨時有幾行隨機ID,如帖子數3,45和67. –

回答

1

您可以將您的額外信息 「數據 - 」 屬性:

<select class="attr_status"> 
    <option data-requiredId='REQUIRED_ID' value='draft'>Draft</option> 

然後在你的事件處理程序,你可以得到它 「數據()」:

$(this).click(function() { 
    statusChanged(this, $(this).data('requiredId'), this.value); 
}); 

編輯 —現在「數據 - 」屬性用HTML5標準化。另一種方法是使用「類」字符串,它可以包含任何東西。我所做的是用在處理程序

<select class="attr_status"> 
    <option class='requiredId:REQUIRED_ID' value='draft'>Draft</option> 

然後:

$(this).click(function() { 
    var id = this.className.replace(/^.*\brequiredId:(\S+).*/, '$1'); 
    statusChanged(this, id, this.value); 
}); 
+0

標準是如何在HTML中添加這些數據屬性?我認爲所有的標籤都有一組固定的屬性。 –

+0

它們是HTML5的標準,而且由於HTML5的全部內容都是對瀏覽器已經做的事情進行編碼,所以我會把它稱爲安全的。如果您使用的是XHTML,並且無法更改,則可以將值嵌入到「類」字符串中。我會延長我的答案。 – Pointy

相關問題