пытается удалить и сохранить и возразить с detach () - PullRequest
0 голосов
/ 07 февраля 2012

Я пытаюсь удалить объект и сохранить его (на случай, если пользователь захочет получить его позже). Я попытался сохранить объект в переменной, как сказано в потоке ниже:

Как мне отменить .detach ()?

Но detach() не удаляет элемент из DOM и не сохраняет его. Я также не получаю никаких сообщений об ошибках. Вот код, который я использую для отсоединения элемента:

function MMtoggle(IDnum) {
        var rowID = "row" + IDnum;
        var jRow = '#' + rowID;
        thisMMbtn = $(jRow).find(".addMMbtn");
        var light = false;
        var that = this;
        if (light == false) {
            thisMMbtn.bind("click",
                function() {
                    var thisRow = $(this).closest(".txtContentRow");
                    var thisTxt = thisRow.find(".txtContent");
                    var cellStr = '<div class = "mmCell prep"></div>';
                    $(cellStr).appendTo(thisTxt);
                    $(this).unbind("click");
                    light = true;
                }
            );
        }
        else {
            thisMMbtn.bind("click",
                function() {
                    var thisRow = $(this).closest(".txtContentRow");
                    thisMM = thisRow.find(".mmCell");
                    SC[rowID].rcbin = thisMM.detach(); //here is where I detach the div and store it in an object
                    $(this).unbind("click");
                    light = false;
                }
            );
        }
    }

    MMtoggle(g.num);

Задача проблемы здесь: http://jsfiddle.net/pScJc/

(кнопка, которая отсоединяется - это кнопка «+» справа. Предполагается, что нужно добавить div и затем отсоединить его при повторном нажатии).

1 Ответ

0 голосов
/ 07 февраля 2012

Глядя на ваш код, я не думаю, что вам нужно detach для того, чего вы пытаетесь достичь.

Вместо этого попробуйте этот код.

    thisMMbtn.bind("click",
        function() {
            var thisRow = $(this).closest(".txtContentRow");
            var thisTxt = thisRow.find(".txtContent");
            var $mmCell = thisTxt.find('.mmCell');
            if($mmCell.length == 0){
                $mmCell = $('<div class = "mmCell prep"></div>')
                          .appendTo(thisTxt).hide();
            }
            $mmCell.toggle();
            //$(this).unbind("click");
        }
    );

Демо

...