0

クリックするとイベントが発生する画像をテーブル行に追加しています。ただし、「クリック可能な」画像を動的に追加できないようです。

画像を含む前のすべての行は、クリックするとクラス属性によって識別されます (ページと共に読み込まれます)。

私が避けたいのは、ライブイベントを使用して別の機能を作成することです.他のすべてのようにクリックしたいだけです:(

問題は、既存の(すでに使用されている)関数がクリックされたときに動的に追加された画像のクラスを識別するだけのイベントを追加するにはどうすればよいかということです...?


あなたの助けに感謝しますが、私はjqueryと名前付き関数について完全に無知です

最後に、ライブ イベントを作成し、元の関数からコードをコピーしました。両方のプロセスから 1 つの関数を呼び出す方法を誰かが知っていれば、それが最も高く評価されます。

4

2 に答える 2

1

新しい画像を追加するときに適用したい名前付き関数があるとします。

function doSomeMagicThing() { //handle image }

img次のように、htmlをラップできます。

//work now on $newImage, which is a jquery element containing your new image.
var $newImage = $('<img src="some_path.png" />');

//Remember it is not yet in your page, so you will have to 
//append it when you are done working with it.
$newImage
    .click(doSomeMagicThing);                        //add click event
    .appendTo($('someSelectorWhereToAppendTo'));     //append it somewhere!
于 2009-12-18T11:03:18.110 に答える
0

任意の JavaScript と同じように、名前付き関数を作成できます。

function myFunc(){

}

その後、jQuery コードで を使用できます.click(myFunc)。関数myFuncは「コールバック」として渡されています。古いコードでは、のようなことをしたと仮定して、同じ方法で無名関数をコールバックとして渡してきました.click(function(){ })

よくある落とし穴は、誤って を書き込んでしまうことです。これは、 の戻り値をそれ自体ではなくコールバックとして.click(myFunc())渡します。myFuncmyFunc

ほとんどの目的で、関数を変数として扱うことができます (関数は後で再定義できないことを除いて、同様の方法で「スコープ」を持ちます)。無名関数を変数に割り当てることで、名前付き関数を作成することもできます:

var myFunc = function(){

}

myFuncその後、他の変数とまったく同じように扱うことができます。

于 2009-12-18T12:56:37.243 に答える