Хорошо, у меня сильная головная боль с простотами - я знаю, что я почти там, но не могу понять, что это правильно работает. У меня есть SimpleModal диалог, который имеет несколько динамически создаваемых дивы внутри него, такие какПроблемы с манипулированием divs в всплывающем диалоговом окне с помощью простого шаблона - Дальнейшее редактирование
<html>
<head>
<!-- Confirm CSS files -->
<link type='text/css' href='css/confirm.css' rel='stylesheet' media='screen' />
</head>
<body>
<div id='container'>
<h1>Test Page</h1>
<div id='content'>
<div id='confirm-dialog'>
Page Content Goes Here
</div>
<!-- modal content -->
<div id='confirm'>
<div class='header'><span>Header Text</span></div>
<div class='message'>
<div id='optionDiv0'><input type='radio' id='options' name='options' value='0' />Option0</div>
<div id='optionDiv1'><input type='radio' id='options' name='options' value='1' />Option1</div>
<div id='optionDiv2'><input type='radio' id='options' name='options' value='2' />Option2</div>
</div>
<div class='buttons'>
<div class='yes'>OK</div>
</div>
</div>
</div>
<!-- Load JavaScript files -->
<script type='text/javascript' src='scripts/jquery.js'></script>
<script type='text/javascript' src='scripts/jquery.simplemodal.js'></script>
<script type="text/javascript">
jQuery(function ($) {
$('#confirm-dialog input.confirm, #confirm-dialog a.confirm').click(function (e) {
e.preventDefault();
confirm("", function() {
for(var k = 0; k <= 3; k++) {
if(options[k].checked) {
var ele = document.getElementById("optionDiv" + k);
ele.style.display = "none;";
//alert("Stop Here");
}
}
});
});
});
function confirm(message, callback) {
$('#confirm').modal({
closeHTML: "<a href='#' title='Close' class='modal-close'>x</a>",
position: ["20%",],
overlayId: 'confirm-overlay',
containerId: 'confirm-container',
containerCss: {
height: 300,
width: 450,
backgroundColor: '#fff',
border: '3px solid #ccc'
},
onShow: function (dialog) {
var modal = this;
$('.message', dialog.data[0]).append(message);
// if the user clicks "yes"
$('.yes', dialog.data[0]).click(function() {
// call the callback
if ($.isFunction(callback)) {
callback.apply();
}
// close the dialog
modal.close(); // or $.modal.close();
});
}
});
}
</script>
</body>
</html>
В коде мыши, я пытаюсь сделать так, когда пользователь нажимает на одну из кнопок радио, затем щелкает " OK ', этот элемент больше не отображается во всплывающем окне. Если я следую этому коду с alert("Stop here");
(показано в приведенном выше коде, закомментирован), я могу увидеть, что div исчез из всплывающего окна. Но как только я очищу окно предупреждения (или если я прокомментирую его, чтобы он никогда не запускался), в следующий раз, когда я активирую диалог, div, который я скрыл, снова появляется. Как я могу скрыть его, чтобы он оставался скрытым при следующем включении диалога или это возможно? Заранее спасибо.
ОКОНЧАТЕЛЬНЫЙ РЕДАКТ: найдено решение для диалогового окна, возвращающегося в исходное состояние при каждом его открытии. Я вставил это в чуть выше коды Jquery, и он работает как шарм:
<script> $.modal.defaults.persist = true; </script>
Нашел на этом сайте в другом потоке, как часть другого вопроса. Спасибо всем, кто помог.
Невозможно ответить на ваш вопрос, не видя свой код. Это пустая трата времени в текущем состоянии. :( – gdoron
Я показал код, который применим, я не думаю, что кто-то действительно хочет увидеть всю страницу, на которой это происходит. Я сократил ее для краткости. Есть ли что-то конкретное, что не позволяет вам думать, что это пустая трата время? – piratepops
Подумайте, вы покажете нам HTML и одну допустимую строку, которая скрывает элемент. Это выглядит хорошо. Проблемы в другом месте. Я не могу сказать вам, где проблема, но ее здесь нет. – gdoron