2

私はこのコードに本当に苦労しています。

私が達成しようとしていること:「編集ボタン」があります。押すとアクティブになり、編集モードがアクティブになります。その場でリストを編集でき、自動的に更新されます。

問題: 50% で動作させることができます。ボタンをアクティブにしようとすると、オブジェクトを編集できます。しかし、もう一度ボタンを非アクティブにすると、オブジェクトを編集できます。もちろん、それはできないはずです。

ここにいくつかの厄介なコードがあります。はい、ほとんどがオンラインで見つかり、自分で編集しようとしています...

$("#editButton").click(function() {
    $("#editButton").toggleClass("active");
    if ($("#editButton").hasClass("active")) {
        $(".moveLi").on("click", function() {
            var ID = $(this).attr('id');
            $("#move_"+ID).hide();
            $("#move_edit_"+ID).show();
        }).change(function() {
            var ID = $(this).attr('id');
            var first = $("#move_edit_"+ID).val();
            var dataString = 'id=' + ID + '&name=' + first;
            $("#move_"+ID).html('<p>Saving...</p>'); // Loading image

            if (first.length > 0) {
                $.ajax({
                    type: "POST",
                    url: "table_edit_ajax.php",
                    data: dataString,
                    cache: false,
                    success: function(html) {
                        $("#move_"+ID).html(first);
                    }
                });
            }
            else {
                alert('Enter something.');
            }
        });

        $(".editbox").mouseup(function()  {
            return false
        });

        $(document).mouseup(function() {
            $(".editbox").hide();
            $(".text").show();
        });
    } 
});

前もって感謝します!

4

2 に答える 2

3

一連のイベント ハンドラーをバインドしますが.moveLi、編集が停止するはずのときにそれらを削除しないでください。

if ($("#editButton").hasClass("active")) {
    $(".moveLi").on("click", function() {
        ...
    }).change(function() {
        ...

これらを次のように補足します。

$(".moveLi").off("click").unbind('change');
于 2012-05-10T12:47:34.777 に答える
2

このコード行でエラーが発生しまし$(".moveLi").on("click", function()た。

そのはず$(".moveLi").click(function() {...})

Firefox用のFirebugプラグインを使用して、デバッグや他のブラウザーのその他の組み込み開発ツールを使用することもできます。これにより、すべてのJS(およびCSS)エラーを確認できます。

于 2012-05-10T12:39:06.950 に答える