0

ドキュメントの準備ができたら、class=projectでいくつかの要素のcssを変更するonclick関数があります。.remove()を使用した別のイベントのためにclass = projectでこれらの要素を削除し、別のイベントのためにclass = projectで.append()を使用して新しい要素を追加した場合、cssを変更するonclickイベントは引き続き機能しないはずです。新しい要素にはclass=projectがありますか?

それはそうではないように見えますが、それを回避する方法はありますか?

4

3 に答える 3

2

新しい要素はバインド時に存在しなかったため、イベント ハンドラーで再度委任またはバインドする必要はありません。

$('.project').on('click',function(){...}) // <-- elements must exist at time of binding

$('body').on('click','.project',function(){...}) // <-- event handler is attached to an ancestor element - which is body in this example
// the ancestor element will now listen to events from elements with class=project and handle the events as they bubble up
于 2013-01-04T18:59:26.177 に答える
1

.detachの代わりに使ってみてください.remove。ただし、委任を使用したいようです。少なくとも:

$(document).on('click', '.project', function () {

を使用する代わりに、要素documentのコンテナーの親のような、より具体的なセレクターを使用するようにしてください。.project

于 2013-01-04T18:59:03.340 に答える
0

私はjQueryの.delegateについて学びましたが、それはまさに私が望んでいることです。必要なものをすべて削除して追加できます。これが他の誰かの助けになることを願っています。

于 2013-01-05T06:58:39.970 に答える