Диалоговое окно jQuery - отделение исчезает после инициализации

Диалоговое окно jQuery причиняет мне много боли в последнее время. У меня есть следующее отделение, которое я хочу быть открытым. (Проигнорируйте, что классы не показывают двойные кавычки в синтаксисе),

TABLE class=widget-title-table border=0 cellSpacing=0 cellPadding=0>
<TBODY>
<TR>
    <TD class=widget-title><SPAN class=widget-title>Basic Info</SPAN></TD>
    <TD class=widget-action>
    <DIV id=edit-actions jQuery1266325647362="3">
        <UL class="linkbutton-menu read-mode">
            <LI class="control-actions">
                <A id="action-button" class="mouse-over-pointer linkbutton">Delete this                 stakeholder</A> 
            <DIV id="confirmation" class="confirmation-dialog title=Confirmation">
                Are you sure you want to delete this stakeholder? 
            </DIV>

</LI></UL></DIV></TD></TR></TBODY></TABLE>

JQuery для этого...

$(document).ready(function() {

$('#confirmation').dialog({
    bgiframe: true, modal: true, autoOpen: false, closeOnEscape: false,
    draggable: true, position: 'center', resizable: false, width: 400, height: 150
    });

});

И диалоговое окно 'open'ed

var confirmationBox = $('#confirmation',actionContent);
if (confirmationBox.length > 0) {


    //Confirmation Needed
    $(confirmationBox).dialog('option', 'buttons', {
        'No': function() {
            $(this).dialog('close');
        },
        'Yes': function() {
            $('ul.read-mode').hide();
            $.post(requestUrl, {}, ActionCallback(context[0], renderFormUrl), 'json');
            $(this).dialog('close');
        }            
    });

    $(confirmationBox).dialog('open');

}

Проблема запускается в самой инициализации. Когда документ загружается, <div #confirmation> удален из разметки! У меня была подобная проблема ранее, но я не могу использовать то решение здесь. На этой странице у меня может быть несколько отделений PopUp.

Когда я включил инициализацию прежде, чем открыть его; форма открылась. Но после того, как я закрываю его, отделение удалено; таким образом, я не могу видеть всплывающее окно снова.

5
задан Zuber 16 February 2010 в 13:17
поделиться

3 ответа

Оператор

delete предназначен только для освобождения памяти, а память освобождается для самого производного объекта класса в целом - в одном действии - точно таким же путем, как и для нового оператора, он выделяется для всего самого производного объекта класса - объект класса передается в качестве аргумента в новую конструкцию класса .

Поэтому при выполнении delete ptr; оператор delete всегда вызывается только один раз для фактического наиболее производного класса удаляемого объекта, и данные о том, какой класс он является, выводятся либо из таблицы vtable, если присутствует виртуальный деструктор, либо из типа указателя, если нет виртуального деструктора. Вот почему в операторе delete нет неявной виртуальности - вся виртуальность заканчивается в точке вызова деструктора.

-121--2475306-

Обычно на вводных курсах вам говорят, что, чтобы вы не случайно изменили то, чего не хотели.

Например, если вы передали имя пользователя по ссылке и случайно изменили его на mrsbuxley, что, вероятно, может привести к ошибкам, или, по крайней мере, запутать позже.

-121--3095632-

Хорошо. Думаю, я прибил его с помощью вас, ребята.

Некоторые «собственные» факты о диалоге, которые я знаю сейчас (Пожалуйста, исправьте, если я не прав):

  1. Когда < div > инициализируется как диалог, он удаляется из исходного местоположения и перемещается в элемент < body > в < div class = «ui-dialog» > . Так что 'естественно' исчезает.

  2. Для выбора диалогового окна теперь требуется уникальный идентификатор. В большинстве случаев это может быть идентификатор или некоторые другие атрибуты на этом разделе, что делает его уникальным на странице.

  3. Разметка диалога создается каждый раз при инициализации диалога. Так, в случае вызовов AJAX, если уже существующий диалог инициирован, вы получите всплывающее окно более одного раза (столько раз оно было повторно инициализировано). Чтобы решить эту проблему, я удалил существующие диалоговые пометки перед повторной инициализацией. Мне пришлось сделать это, потому что мой ответ AJAX может иметь некоторые диалоги, которые должны быть инициированы.

     Функция InitialityConfirmationDialog () {
    $ ('div.confirmation-dialog') .each (функция () {
    var id = $ (this) .attr («id»);
    if ($ ('div.ui-dialog-content [id = «' + id + '»]') .length > 0) {
    $ ('div.ui-dialog-content [id = "" + id + ""] ") .parents (' div.ui-dialog: first ') .html (" ") .remove ();
    }
    $ (this) .диалоговый ({
    bgiframe: true, modal: true, autoOpen: false, closeOnEscape: false,
    draggable: true, положение: 'центр', изменение размера: false, ширина: 400, высота: 150
    });
    
    
    });
    

    }

3
ответ дан 13 December 2019 в 22:07
поделиться

Вы хотите использовать git cherry-pick . Я предположу, что ваш пульт называется «происхождение» (но замените настоящее имя удаленного репо на «происхождение»). Я предполагаю, что у вас есть две локальные ветви с именами master и dev . Я предположу, что фиксация D находится на origin/dev . Cherry-pick D можно выбрать следующим образом:

$ git fetch origin             # Assuming the upstream remote's name is "origin"
$ git checkout dev             # Check out your local "dev" branch
$ git cherry-pick $COMMIT_D    # Replace "COMMIT_D" with the hash for commit D

Теперь изменения от commit D будут внесены только в dev .

-121--3153442-

Создайте пользовательскую проверку :

validate :check_email_and_password

def check_email_and_password
  errors.add(:password, "can't be the same as email") if email == password
end

Но помните, что сохранение пароля в виде обычного текста - плохая идея. Ты должен хранить его в хэше. Попробуйте использовать подключаемый модуль проверки подлинности, например authlogic или Restful authentication .

-121--1483872-

Причина удаления # подтверждения заключается в том, что $ («# foo») .dialog () переместит # foo из любой точки DOM в нижнюю часть документа внутри элементов оболочки, создающих первоначально скрытый стиль диалога. Понятно, что диалоги скрыты до открытия.

5
ответ дан 13 December 2019 в 22:07
поделиться

Вы уверены, что у одного и только одного div есть идентификатор "подтверждение"? Повторяющиеся идентификаторы не допускаются.

0
ответ дан 13 December 2019 в 22:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: