0

クリックすると ajax コンテンツが div に読み込まれるリンクがあります。

html:

<div class="noticiaAberta"></div>

アヤックス関数:

$('#feedbackNoticia a').click(function(){
    $.post('teste.php', function(data){
        $('#noticiasBox .descricao').fadeOut(200);
        $('#noticiasBox .noticiaAberta').delay(200).fadeIn(200).html(data);
    })
});

これは ajax ファイルです。

<div class="ajax">
    <a class="close"></a>
    <img src="assets/images/temp/noticia-clicada.jpg" alt="">
    <h1>teste adf asdf laskdfjl aksdjfl kasjdflk jasdlfk jasldkf jasd asdfk lahsdfkl jhasdkfj hasdfkhj</h1>
    <div class="pNoticias">
        <p>teste</p>
    </div>
</div>
<script type="text/javascript">
    $('.ajax .close').click(function(){
        $('.ajax').remove();
    })
</script>

ajaxは機能していますが、削除機能が正しく機能していません。クリックすると.closeリンクが削除されるだけです

誰かがそれが何であるか知っていますか?

4

3 に答える 3

2

Javascript を次のように変更します。

$(document).on('click','.ajax .close', function(){
    $('.ajax').remove();
})

そうすれば、指定されたセレクターに一致する動的に作成された要素には必ずハンドラーがアタッチされます。

于 2013-01-18T13:32:35.963 に答える
1

関数はJQueryの準備ができて定義されている必要があり、Ajaxの結果から得られたすべての新しい要素を自動的にバインドするためにデリゲートを使用する必要があります。

  $(function(){
     $(document).delegate('.ajax, .close', 'click', function(){
         $('.ajax').remove();    
     });
  });

詳細については、この投稿を参照してください:要素を動的に追加し、セレクターを使用しようとしています.click event Jquery

http://jsfiddle.net/fTk6t/

于 2013-01-18T13:35:13.133 に答える
0

私はちょうど問題を解決しました。問題は、.ajaxdivに高さがなかったことでした.aを入れfloat:leftて問題を解決しました-.-

ありがとうございます!

于 2013-01-18T14:50:25.597 に答える