2012-03-26 11 views
1

mysqlデータベースに格納されている画像レコードの数に基づいて、複数の.click()関数をページの読み込みに使用する必要があります。forループを繰り返して、より多くのjavascriptを作成できますか?

これまでのところ、私はうまくイメージボタンの<ul>

で写真を切り替えますページを持っているが、私はそれを扱うのjQueryを書く手に持っています。

私は.jsファイルに、.click()の正確な量のデータをデータベースに記録することができます。

答えて

-1

各固有の要素にclick()を書く必要はありません。

代わりに、あなたは$('a.record')、その後、それにチェーンclick()として、にセレクタを持つ要素の束を選択することができ...

$('a.record').click(function() { 
    // Any `a` element with a class of `record` was clicked. 
}); 

をこの方法でそれを行うことの欠点は、あなたが束を追加することです将来の要素のためにトリガされることはありません。他の人が述べたように、それが唯一のイベントリスナーをアタッチし、後に追加され、将来の要素で動作するよう

は、(古い使用している場合)またはdelegate()(新しいjQueryのを使用している場合)on()を使用してイベントの代表団は、最高ですイベントが添付されています。

$(document).on('click', 'a.record', function() { 
    // Any `a` element with a class of `record` was clicked, now or in the future. 
}); 

私はここdocumentを使用しましたが、あなたは、あなたが説明したul要素であってもよい変更されることはありません最寄りの祖先を、使用する必要があります。あなたがまだ存在していないか、ページに追加されていない要素のクリックイベントを設定したい場合は、あなたが行うことができアレックスの答えに加えて

3

、:

$(body).on('click','a.record',function(){ 
    //any existing or future a element with class record will have this click function 
}); 
1

の代わりに追加しますそれぞれの要素に対して個別のonclickハンドラを使用する場合は、event delegationを使用し、単一のイベントハンドラを一部のコンテナにアタッチする必要があります。上記のイベントハンドルは、すべてのonclickイベントをキャッチし、DOMをバブルアップします。

関連する問題