Диалоговое окно 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.
Когда я включил инициализацию прежде, чем открыть его; форма открылась. Но после того, как я закрываю его, отделение удалено; таким образом, я не могу видеть всплывающее окно снова.
delete
предназначен только для освобождения памяти, а память освобождается для самого производного объекта класса в целом - в одном действии - точно таким же путем, как и для нового
оператора, он выделяется для всего самого производного объекта класса - объект класса передается в качестве аргумента в новую конструкцию класса
.
Поэтому при выполнении delete ptr;
оператор delete
всегда вызывается только один раз для фактического наиболее производного класса удаляемого объекта, и данные о том, какой класс он является, выводятся либо из таблицы vtable, если присутствует виртуальный деструктор, либо из типа указателя, если нет виртуального деструктора. Вот почему в операторе delete
нет неявной виртуальности - вся виртуальность заканчивается в точке вызова деструктора.
Обычно на вводных курсах вам говорят, что, чтобы вы не случайно изменили то, чего не хотели.
Например, если вы передали имя пользователя по ссылке и случайно изменили его на mrsbuxley, что, вероятно, может привести к ошибкам, или, по крайней мере, запутать позже.
-121--3095632-Хорошо. Думаю, я прибил его с помощью вас, ребята.
Некоторые «собственные» факты о диалоге, которые я знаю сейчас (Пожалуйста, исправьте, если я не прав):
Когда < div >
инициализируется как диалог, он удаляется из исходного местоположения и перемещается в элемент < body >
в < div class = «ui-dialog» >
. Так что 'естественно' исчезает.
Для выбора диалогового окна теперь требуется уникальный идентификатор. В большинстве случаев это может быть идентификатор или некоторые другие атрибуты на этом разделе, что делает его уникальным на странице.
Разметка диалога создается каждый раз при инициализации диалога. Так, в случае вызовов 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
});
});
}
Вы хотите использовать 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
.
Создайте пользовательскую проверку :
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 в нижнюю часть документа внутри элементов оболочки, создающих первоначально скрытый стиль диалога. Понятно, что диалоги скрыты до открытия.
Вы уверены, что у одного и только одного div есть идентификатор "подтверждение"? Повторяющиеся идентификаторы не допускаются.