0

PHPページに投稿するjqueryコードがあり、結果がエコーされます。リンクをクリックしてデータを追加すると、複数回クリックするとデータが 2 倍になります。なぜそうなるのかは完全に理にかなっていますが(私は思います)、二重追加が起こらないようにする方法について何か提案はありますか?

コード:

jQuery(function(){
    jQuery('.link').click(function(){
        var id = jQuery(this).attr('id');

        jQuery.ajax({
          url : "medialib/getpictures.php",
          data: "linkid="+id,
          type : "post",
          success: function(html){
                jQuery('#txtHint').append(html);
        }

        });
    return false;
    });
});
4

3 に答える 3

2

#txtHint のデータを上書きしたい場合:

jQuery('#txtHint').html(html);

ps。これがあなたの求めているものであることを願っています

于 2013-10-10T12:34:33.260 に答える
0

html()を使用してみてください。

jQuery('#txtHint').html(html);

以前のデータを保持したい場合は、次のように試してください。

prevHTML=jQuery('#txtHint').html();
newHTML=prevHTML.replace(html,'')+html; // replace previous html if same html comes in
jQuery('#txtHint').html(newHTML);
于 2013-10-10T12:35:34.860 に答える
0

おそらく、ユーザーがリンクをクリックできないようにしてリンクを無効にし、追加が完了したら有効にする必要があります..

jQuery(function(){
    jQuery('.link').click(function(){
        var id = jQuery(this).attr('id');
        //diable .link click here
        jQuery.ajax({
          url : "medialib/getpictures.php",
          data: "linkid="+id,
          type : "post",
          success: function(html){
                jQuery('#txtHint').append(html);
                //enable it again here
        }

        });
    return false;
    });
});

または、html() 関数を使用して既存のコンテンツを単純に置き換えることができます。

このような、

   success: function(html){
       jQuery('#txtHint').html(html);
   }
于 2013-10-10T12:40:12.173 に答える