質問

最近アプリケーションを jQuery 1.2 から 1.3.2 にアップグレードしましたが、かなり奇妙な回帰が見つかりました。

いくつかのHTMLの場合、ほぼ次のようなものです(少し簡略化されています)

<div id="steps">
  <div class="step">
    <span>step #1</span>
    <div class="removeStep"> X </div>
  </div>
  <div class="step">
    <span>step #2</span>
    <div class="removeStep"> X </div>
  </div>
</div>

以前に、すべてのステップに対して次のようなイベントをアタッチしました。

$("#steps").find(".removeStep").click(removeStepFunc)

1.2 では、動的に追加したステップも含め、すべてのステップが検索されます。1.3 では、これは最初のステップのみを見つけます。

これも機能しません:

#("#steps .removeStep").click(removeStepFunc)

ただし、これにより次のことが起こります。

#("#steps).children().find(".removeStep").click(removeStepFunc)

この問題を回避できることは明らかですが、アップグレードしたアプリケーションに影響を与える同様のリグレッションが他にもあるのではないかと少し不安になります。一致する要素が複数ある場合にのみ、このリグレッションが現れることがあります。

また、この別の質問も見られますが、これは同じ問題である可能性がありますか?

jQueryセレクターのバグ?合成セレクター vs.単純なセレクターと find()

役に立ちましたか?

解決 2

今、この記事全体でつまずく後にこの問題を解決しています:

http://groups.google.com/group/jquery -en / browse_thread /スレッド/ ae61896a809f6cf0する

経験したし、問題は、jQueryの1.3.2と互換性がありませんでしたjQueryの検証プラグイン(バージョン1.3)の古いバージョンの私達の使用によって引き起こされました。問題は、私たちがバージョン1.6にそれを更新したことを今解決されています。

他のヒント

次のことを試してください。

jQuery('#steps > .removeStep').click(removeStepFunc)

または

jQuery('#steps .step .removeStep').click(removeStepFunc)
ステップ#1 xステップ#2 x

アップデート

こんなものはどうでしょうか?(未テスト):

jQuery('#steps .removeStep').click( function() {
  jQuery(this).remove(jQuery(this).parent());
});
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top