0

2つのjQuery関数があります。1つは並べ替えを可能にし、もう1つはリストのdivからの削除を可能にします。リストアイテムの1つを削除するまで、すべて正常に機能します。次に、ページを更新するまでドラッグが機能しなくなります。

また、削除機能でクリックして削除したdivがすぐに削除されず、複数クリックすると最新のものだけが削除されるという問題もありました。これが、以下の削除機能でdivを更新する理由です。

どんな助けでも大歓迎です!

JQueryソート可能

    $(document).ready(function(){   
          function slideout(){
      setTimeout(function(){
      $("#response").slideUp("slow", function () {
          });

    }, 2000);}

        $("#response").hide();
        $(function() {
        $("#list ul").sortable({ opacity: 0.8, cursor: 'move', update: function() {

                var order = $(this).sortable("serialize") + '&update=update'; 
                $.post("updateReadingList.php", order, function(theResponse){
                    $("#response").html(theResponse);
                    $("#response").slideDown('slow');
                    slideout();
                });                                                              
            }                                 
            });
        });

    }); 

JQuery削除機能

    $(document).ready(function(){ $(function() {
        $( '#reading' ).on( 'click', 'a.deletefromrl', function(){
            $(this).closest('li').fadeOut('slow');
            var order = $('#list ul').sortable("serialize") + '&update=update' + '&id=' + $(this).attr('data-storyid'); 
            $.post("deletefromReadingList.php", order, function(theResponse){
                    $("#response").html(theResponse);
                }); 
                var auto_refresh = setInterval(
                    function()
                    {
                        $('ul').load('reloadReadingList.php');
                    }, 0);  
        })
    })
    })
4

1 に答える 1

1

1 つの解決策は、バインド アクションを独自の関数に配置し、ページの読み込み時に呼び出してから、リストをリロードするたびに呼び出すことです。

EDITED: 最後のもので何が間違っていたのかわかりませんが、これは私にとってはうまくいくようです:

$(document).ready(function(){   
  function slideout(){
      setTimeout(function(){
      $("#response").slideUp("slow", function () {
          });

    }, 2000);}

    function bindSortable()
    {
        $("#list ul").sortable(
        { 
            opacity: 0.8, 
            cursor: 'move', 
            update: function() {

                var order = $(this).sortable("serialize") + '&update=update'; 
                $.post("updateReadingList.php", order, function(theResponse){
                    $("#response").html(theResponse);
                    $("#response").slideDown('slow');
                    slideout();
                });                                                              
            }                                 
        });
    }

    bindSortable();

    $( '#reading' ).on( 'click', 'a.deletefromrl', function(){
        $(this).closest('li').fadeOut('slow');
        var order = $('#list ul').sortable("serialize") + '&update=update' + '&id=' + $(this).attr('data-storyid'); 
        $.post("deletefromReadingList.php", order, function(theResponse){
                $("#response").html(theResponse);
            }); 
            var auto_refresh = setInterval(
                function()
                {
                    $('ul').load('reloadReadingList.php', function()
                    {
                        bindSortable();
                    });
                }, 0);  
    })
}); 
于 2013-01-07T18:21:10.300 に答える