2011-07-17 12 views
0

私はonclick属性ontagを持っています。これは、ユーザーがクリックするとREQUIRED_IDを持つserversideideを取得します。
問題は、ドキュメント上でクリックハンドラを設定するよりjqeryのようなアプローチを試していますが、今はREQUIRED_IDを設定していないためです。
REQUIRED_IDで別のタグを設定し、準備中にそれを読んで、これを行うjqueryの方法は何でしょうか?要素ごとの情報を持つjquery setのクリックハンドラー

はNOW:BEFORE

$.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()); }) 
    ); 
); 

:私はそれらの選択タグ各次々のいくつかを持っているとして

<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です:その後、ハンドラに

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

:表記:私がやったことは、「値の名前」を使用しています、ユーザーID、その他何か? ajax経由でサーバー側のスクリプトから設定/取得できますか? –

+0

私はそれを編集したばかりですが、idはpostidのようなROWIDを意味します。ポスト番号3,45,67のような任意の瞬時にいくつかの行があるかもしれません。 –

答えて

1

属性:

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

その後、あなたのイベントハンドラで、あなたが ".DATA()" でそれを取得することができます。

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

編集 — "data-"属性はHTML5で標準化されています。もう1つのアプローチは、 "class"文字列を使用することです。 、

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

どのように標準でHTMLにデータ属性を追加していますか?私はすべてのタグが固定された属性セットを持っていると思った。 –

+0

これはHTML5の標準であり、HTML5の全面的なポイントは既にブラウザが行っていることをコード化することだから、私はそれを安全と呼ぶだろう。 XHTMLを使用していて、それを変更できない場合は、値を "class"文字列に埋め込むことができます。私は私の答えを広げます。 – Pointy

関連する問題