と呼ばれるを使用jsonObjects[i].type
してデータmenu
を入力/挿入します。イムは、値を取得、およびからのメニューで、私はない値を上のクリックできるようにしたい知っている、とし、クリックされた値に値を変更します。オブジェクトをクリックすると、値、またはが表示されます。私はそれが取得するオブジェクトをクリックした場合はそう/値を表示する、またはメニューのオブジェクトが持っていること。私は私からクリックされたオブジェクトの値の例を変更することができる方法を知っているの?div
#changetotypes
r
c
e
jsonObjects[i].type
r
c
e
r
c
e
jsonObjects[i].type
r
c
e
r
c
<li>
<a href="#">Typs</a>
<ul>
<li>
<a href="#"><span id="currenttype" title=""></span></a>
<ul id="changetotypes"></ul>
</li>
</ul>
</li>
function populateTypes() {
for(i = 0; i < jsonObjects.length; i++) {
if(availableTypes.indexOf(jsonObjects[i].type) < 0) {
availableTypes.push(jsonObjects[i].type);
$("#changetotypes").append('<li><a href="#">' + jsonObjects[i].type + '</a></li>');
}
}
}
次のようなものを試すことができます(jsFiddle)。jsonObjectsが別の場所から来ていると仮定します。
function populateTypes() {
var availableTypes = [];
for(var i = 0; i < jsonObjects.length; i++) {
if(availableTypes.indexOf(jsonObjects[i].type) < 0) {
availableTypes.push(jsonObjects[i].type);
$('<li><a href="#">' + jsonObjects[i].type + '</a></li>')
.data('type', jsonObjects[i].type)
.on('click', function(){ $('#currenttype').text($(this).data('type')); })
.appendTo('#changetotypes');
}
}
}
ここで、特定のタイプの<li />要素を作成するときに、currenttype要素のテキストを変更するクリックハンドラーを同時に追加します。
currenttypeを変更する型を<li />要素のデータに格納するため、ループ内のクロージャについて心配する必要はありませんが、関数を作成するなど、この問題を解決する他の方法もあります。関数を返すか(リンクを参照)、または<a />要素の内容を使用します($( 'a'、$(this))。text()のように)。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加