2010-11-30 6 views
0

私たちは、このような構造を持つページがあります。JQuery - ライブはなぜ動作しますが、クリックはしませんか?

<script type="text/javascript" src="/js/lots.of.javascript.js"></script> 
<jsp:include page="html.jsp"/> 

JavaScriptが$(function(){...}ブロックの多くを持っています。 1つのブロックで$("#mylink").click(...)を試しましたが、これはうまくいきませんでした。しかし対応する.live('click'DIDの仕事。どうしてこれなの?


更新:具体的には私はリンクがhtml.jspファイルに含まれており、文が$(function(){...}で実行されているように、リンクがDOMに追加された後、クリックしてライブの文が実行されていると仮定していますブロック...なぜなら、私はクリックがうまくいかない理由はわかりません。

+0

$( "#mylink")を実行している場所で、html.jspのコンテンツと完全な機能を追加できますか? –

答えて

2

明らかな理由は、イベントが定義された後に要素が作成されることです。それが.live()を使用する主な理由です。

+0

更新されたポストを参照 –

0

もっとコードを見ることなく、確かに知る方法はありませんが、あなたのコントロール(この場合、id = "mylink"のアイテム)がページの後に作成された場合、ロードされました。

+0

更新されたポストを参照してください。 –

0

ページがロードされた後、要素がDOMに追加されたと思います。 .liveメソッドは、後に追加された要素が正しいイベントハンドラを取得することを保証します。

+0

更新されたポストを参照してください。 –

0

IDが#mylinkの要素は、後で作成され、DOMの準備ができた時点では作成されていない可能性があります。

+0

更新された投稿を参照してください。 –

関連する問題