2016-04-14 27 views
0

jQueryプラグインを使用していますが、jQueryを使用して要素にデータを設定するのが難しいです。jQueryを使用してdata()を設定できません

以下のコードは外部のjsファイルにあります。

var imgtd = $('<td></td>'); 
var img = $('<img src="' + imgdirectory + '16/arrow_up_green.gif" onclick="' + 
    'jQuery.multiselectviewer.reOrderMultiSelectViewer(' + index + ', 1, jQuery(this) 
    .data(\'multiselectEle\'));" alt="Move ' + controlName + ' up in the list">') 
    .data("multiselectEle", i); 
$(imgtd).append(img); 
var dat = img.data(); 
$(row).append(imgtd); 

)私は最後の行にブレークポイントを設定すると、私はimg要素に割り当てられたデータを見ることができますが、私は要素をチェックするときにページを呼び出し、データを(ロードが終了した後にnullを返し、ときイメージをクリックすると、null値が呼び出された関数に渡されます。

私はそれが私が間違っていることは簡単だと思うが、それは私をつかまえてしまった。

答えて

0

data-*属性を設定する場合data()mentioned in this related discussionとしてそれらを書くとは対照的に、実際の値を読み取るためのより適しているとして、あなたは、data()とは対照的に、attr()機能を使用することを検討する必要があります表示されます

.attr("data-multiselectEle", i); 

がしますworking as expected as seen in the example here

enter image description here

+0

残念ながら、それが機能していない、私はバインそれに起因すると仮定私が割り当てようとしているオブジェクト。 'data-multiselectele = "[オブジェクトオブジェクト]"'を出力します。プラグインオプションを要素に付けることで、呼び出された関数内からアクセスできるようにする必要があります。私は同様のことをする別のプラグインを見ており、そのプラグインによって生成されたオブジェクトのコンソールで.data()関数を呼び出すと、オブジェクトのプロパティが表示されます。 –

+0

あなたの文脈の中で「i」とは何ですか?要素(およびその "データ")をターゲットにして、データ属性を必要としないように更新されたデータを追加するには、プラグインの機能の一部を使用する必要があります。 –

関連する問題