Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Передача параметра в модальное окно (https://javascript.ru/forum/jquery/46349-peredacha-parametra-v-modalnoe-okno.html)

cript 06.04.2014 23:43

Передача параметра в модальное окно
 
Приветствую!
Есть такой код модального диалога:
<script>
$(document).ready(function () {
$('a.btn-ok, #dialog-overlay, #dialog-btn').click(function () {		
$('#dialog-overlay, #dialog-box').hide();		
return false;
});
$(window).resize(function () {
if (!$('#dialog-box').is(':hidden')) popup();		
});		
});
function popup(message) {
var maskHeight = $(document).height();  
var maskWidth = $(window).width();
var dialogTop = (maskHeight/3) - ($('#dialog-box').height());  
var dialogLeft = (maskWidth/2) - ($('#dialog-box').width()/2); 
$('#dialog-overlay').css({height:maskHeight, width:maskWidth}).show();
$('#dialog-box').css({top:dialogTop, left:dialogLeft}).show();
$('#dialog-message').html(message);			
}
</script>
<div id="dialog-box">
<div class="dialog-content">
<div id="dialog-message" align="center">
<img src="">
</div>
</div>
</div>
<a href="#dialog-box" rel="test.gif" onclick="javascript:popup();">test.gif</a>

Подскажите как передать название изображения (параметр) в диалоговое окно?

Aetae 06.04.2014 23:55

onclick="popup('<img src=\'test.gif\'>');"

cript 07.04.2014 00:33

Цитата:

Сообщение от Aetae (Сообщение 306497)
onclick="popup('<img src=\'test.gif\'>');"

И как ее в итоге отобразить?

Aetae 07.04.2014 00:49

Щито?
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
<script>
$(document).ready(function () {
$('a.btn-ok, #dialog-overlay, #dialog-btn').click(function () {    
$('#dialog-overlay, #dialog-box').hide();      
return false;
});
$(window).resize(function () {
if (!$('#dialog-box').is(':hidden')) popup();      
});    
});
function popup(message) {
var maskHeight = $(document).height(); 
var maskWidth = $(window).width();
var dialogTop = (maskHeight/3) - ($('#dialog-box').height()); 
var dialogLeft = (maskWidth/2) - ($('#dialog-box').width()/2);
$('#dialog-overlay').css({height:maskHeight, width:maskWidth}).show();
$('#dialog-box').css({top:dialogTop, left:dialogLeft}).show();
$('#dialog-message').html(message);        
}
</script>
<div id="dialog-box">
<div class="dialog-content">
<div id="dialog-message" align="center">
<img src="">
</div>
</div>
</div>
<a href="#dialog-box" rel="test.gif" onclick="popup('<img src=\'http://javascript.ru/forum/images/ca_serenity/misc/logo.gif\'>');">test.gif</a>

cript 07.04.2014 03:17

Aetae,
Отлично работает, только вот еще проблема, при добавлении display:none не срабатывает, а именно:
<style>
#dialog-box {	
-webkit-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5);
-moz-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5);
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
background: #eee;
width: 428px; 
position: absolute; 
z-index: 5000; 
display: none;
}
</style>

А без этого окно остается открытым...

cript 07.04.2014 23:18

Цитата:

Сообщение от Aetae
onclick="popup('<img src=\'test.gif\'>');"

Еще в таком случае отображается только картинка, то есть если в блоке присутствует еще какой либо текст, то он будет заменен на переданное изображение..

Aetae 08.04.2014 00:44

Это следует из вашего кода.

cript 08.04.2014 01:01

Цитата:

Сообщение от Aetae
Это следует из вашего кода.

Может есть какое нибудь еще решение?

Aetae 08.04.2014 01:07

Есть. Написать именно то, что вам нужно. Мне это делать неохота.

cript 08.04.2014 02:21

Может кто нибудь знает как провести выборку из адресной строки?

cript 08.04.2014 22:45

Вот решил попробовать сделать так но безрезультатно, что не так в этой конструкции?
<script src="//code.internetrange.com/jquery-1.8.3.js" type="text/javascript"></script>
<script type="text/javascript" language="javascript">
$(document).ready(function () {
id = $(this.element).attr('rel');
$('a.btn-ok, #dialog-overlay, #dialog-btn').click(function () {		
$('#dialog-overlay, #dialog-box').hide();		
return false;
});
$(window).resize(function () {
if (!$('#dialog-box').is(':hidden')) popup();	
});		
});
function popup(message) {
var maskHeight = $(document).height();  
var maskWidth = $(window).width();
var dialogTop = (maskHeight/3) - ($('#dialog-box').height());  
var dialogLeft = (maskWidth/2) - ($('#dialog-box').width()/2); 
$('#dialog-overlay').css({height:maskHeight, width:maskWidth}).show();
$('#dialog-box').css({top:dialogTop, left:dialogLeft}).show();
$('#dialog-message').html(message);			
}
</script>
<div id="dialog-box" style="display:none;">
<a href="#" id="dialog-btn" title="Закрыть окно">x</a>
<div class="dialog-content" style="padding: 20px;">
<div id="dialog-message" align="center">
<script>document.write('<img src='id'>')</script>
</div>
</div>
</div>
<a href="#" rel="98.png" onclick="popup()">98.png</a>

cript 09.04.2014 20:12

Так ничего дельного и не нашел
Пробовал делать так
function getid() {
var image = $("#image").attr('rel');
$.post('getresourseid.php', {
image: image
},
function (data) {
$("#adimage").html(data);
}
);
}

<div id="dialog-box">
<a href="#" id="dialog-btn" title="Закрыть окно">x</a>
<div class="dialog-content" style="padding: 20px;">
<div id="dialog-message" align="center">
<div id="adimage"></div>
</div>
</div>
</div>
<a href="#" rel="1.png" id="image" onclick="popup();getid();">1</a>
<a href="#" rel="2.png" id="image" onclick="popup();getid();">2</a>

В этом случае если кликаю по ссылке все отправляется, но если потом кликнуть по второй, то отправляться будет предыдущая картинка..

Потом так:
function getid() {
var image = $("#image").attr('rel');
document.getElementById("adimage").innerHTML = '<img src=\'+image+\'>'; 
var elements = document.getElementById("adimage").getElementsByTagName("script"); 
for (var i=0,len=elements.length;i<len;i++) { eval.call(window,elements[i].innerHTML); }
}

Здесь просто вместо картинки отображается надпись "image" ..


Часовой пояс GMT +3, время: 19:11.