jquery dialog запускается только при втором обращении
Добрый день.
Подскажите пожалуйста, в чем может быть ошибка. Я беру код для dialog`а
<script>
$(function() {
$( "#dialog" ).dialog({
autoOpen: false,
show: {
effect: "blind",
duration: 1000
},
hide: {
effect: "explode",
duration: 1000
}
});
$( "#opener" ).click(function() {
$( "#dialog" ).dialog( "open" );
});
});
</script>
<div id="dialog" title="Basic dialog"> <p>тут тело диалога</p> </div> <button id="opener">Open Dialog</button> Когда я переделываю этот код, чтобы он работал с разными кнопками, при нажатии на которые выводились бы разные сообщения, то у меня получается следующий код:
<script>
function clickButton(idButton, idDiv) {
$(idButton).click(function () {
$(idDiv).dialog("open");
});
}
</script>
<script>
$(function () {
$(".image").dialog({
autoOpen: false,
width: "auto",
show: {
effect: "blind",
duration: 1000
},
hide: {
effect: "blind",
duration: 1000
}
});
});
</script>
Вопрос в следующем: после загрузки страницы диалог открывается только при втором нажатии на кнопку. Если его потом закрыть и нажать на кнопку вновь, в этот раз диалог открывается с первого нажатия. Из-за чего это происходит? |
Фоныч,
где запуск clickButton ? |
Цитата:
<div id="table" class="image" title="Basic table"> раз текст </div> <button id="openTable" class="open" onclick="clickButton(openTable, table)">Open Table</button> <div id="win" class="image" title="Basic window"> два текст </div> <button id="openWindow" class="open" onclick="clickButton(openWindow, win)">Open Window</button> |
Фоныч,
по клику клику -- 1 клик -- навесили открытие - 2 клик навесли открытие + открыли диалог -- 3 клик навесили открытие -- открыли диалог + закрыли диалог ... и тд пока браузер неопухнет. |
Подскажите, как правильно переписать, чтобы никто не опухал :)
|
Фоныч,
<!DOCTYPE HTML>
<html>
<head>
<title>dialog demo</title>
<meta charset="utf-8">
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css">
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<style type="text/css">
<style type="text/css">
.image2{
display: none;
}
</style>
<script>
$(function () {
$('.open').click(function () {
var id = $(this).data('image')
$(id).dialog("open");
});
$(".image").dialog({
autoOpen: false,
width: "auto",
show: {
effect: "blind",
duration: 1000
},
hide: {
effect: "blind",
duration: 1000
}
});
});
</script>
</head>
<body>
<div id="dialog" title="Basic dialog" class="image">
<p>тут тело диалога</p>
</div>
<button id="opener" class="open" data-image='#dialog'>Open Dialog</button>
<div id="table" class="image" title="Basic table">
раз текст
</div>
<button id="openTable" class="open" data-image='#table'>Open Table</button>
<div id="win" class="image" title="Basic window">
два текст
</div>
<button id="openWindow" class="open" data-image='#win'>Open Window</button>
</body>
</html>
|
Спасибо, большое. Заработало так как надо.
|
| Часовой пояс GMT +3, время: 07:05. |