0

私は、自分よりもHTMLとJavaScriptが明らかに得意な人によって書かれた、手に負えないプロジェクトに取り組んでいます。htmlには次のようなAJAXリンクがあります。

<ul class="subNav">
       <li><a link="contacts.html">Contacts</a></li>
       <li><a link="contacts_add.html">Add Contact</a></li>
</ul>

これはこのコードで処理されると思います:

$('.subNav li a').click(function() {

        var href = $(this).attr('link')

        $('#mainStage').load(href, function() {
            pageLoad();
        })
})

上記のコードはすべて完全に機能します。

私の問題は、この機能を再現できないように見えることです。私はこのHTMLを使用しています:

 <div class="nameTitle colorOne"><a link="contacts_add.html">
      <span class="firstNameField">Contact Name</span>
 </a></div>

そしてこのJavaScript:

$('.nameTitle').click(function() {
        alert('')
        $('#mainStage').load("contacts_add.html", function() {
            pageLoad();
        })
})

「nameTitle」クラスをクリックすると、contacts_add.htmlがページのmainStageセクションに読み込まれるはずですが、何も起こらないことがわかります。このスタイルのコーディングに精通している人なら、私のイベントが発生しない理由を教えてくれると思いますが、以前のコードは発生します。

前もって感謝します、

4

3 に答える 3

1

コードを次のように変更してみてください。

$('.nameTitle').click(function() {

  //This line finds the address to load
  var address = $(this).children("a").attr("link");

  //This line loads the address and then runs the pageLoad function when it has completed
  $('#mainStage').load(address, function() {
    pageLoad();
  });
});

これが機能しない場合は、htmlが動的にロードされていることが原因である可能性があります。この場合、を使用する必要があります。こちら.onのリンクを参照してください。

以下のブレットのコメントに応えて、iveはここ.onで実際に動作しているjsfiddleをまとめました。また、これは問題を引き起こす可能性があるため、追加しました。.preventDefault

于 2012-07-22T23:46:56.683 に答える
0

で試してみてください

$('.nameTitle a').click(function() {

うまくいけばまれになっているとはいえ、「a」タグのクリックのみを受け入れるブラウザを試している可能性があります。

于 2012-07-22T23:54:16.673 に答える
0

ahrefが定義された内部要素があるため、「クリック」イベントがdivで発生することはありません。クリックすると、最初にアンカーリンクでイベントが発生し、デフォルトでは、hrefで指定された場所にリダイレクトされます。これを機能させるには、a:で発生したときにクリックをキャッチします。

$('.nameTitle a').click(function(e) {
    e.preventDefault(); // prevent browser from following href
    alert('');
    $('#mainStage').load("contacts_add.html", function() {
        pageLoad();
    });
});

デモ-そのページはこのサーバー上にないため、負荷をコメントアウトしました。また、要素を。ではなくa属性を持つように変更したことにも注意してください。hreflink

于 2012-07-22T23:55:30.680 に答える