2012-12-14 113 views
3

这是我的问题。我在我的网站上创建自己的图像弹出窗口。

这是弹出

<script> clicked = $('#gatb-1').click(function() { 
    return this.getAttribute('imid') }); </script> 

*注前的脚本:点击是全局变量

这是图片代码:

<?php foreach ($the_picture as $picture) : ?> 
<a id="gatb-1" imid="http://somesite.com/img/image.jpg" class="glr"> 
<div class="picture"> 
<img src="http://somesite.com/img/image.jpg" width="340px"> 
</div> 
</a> 
<?php endforeach; ?> 

然后弹出代码下面的图片代码被称为,这是弹出显示时的脚本:block

这是弹出DIV:

<div class="popup"> 
<script> 
$(document).ready(function() { 
    $('#thmg').attr('src', clicked); }); 
</script> 
<table> 
<tr> 
<td>left link</td> 
<td><div class="picts"><img id="thmg" src="target here"></div></td> 
<td>Right link</td> 
</table> 
</div> 

我还曾试图弹出在此之前的代码,但它是相同的。总是返回[对象的对象]或返回null

$(this).attr('imid') 

的结果是这样的:

<img src="[object object]"> 

这样,我怎么能传递属性?或者我做错了什么?

+0

除了创建无效的HTML吗? –

+3

这没有任何意义,在锚中有一个img属性,你不关闭函数,你基本上用无效的HTML做所有事情都是错的,奇怪的javascript将img属性返回给全局的方式)等 – adeneo

回答

0

我已经找到了!它不是关于错误的代码或任何东西。其仅仅因为<script></script>是全球不同的。其因为我在1个文件的两个地方有<script></script>

<script> 
clicked = $('#gatb-1').click(function() { 
    return this.getAttribute('imid') }); 
</script> 

然后访问另一个变量<script></script>是让它不工作的那个。

<script> 
$(document).ready(function() { 
     $('#thmg').attr('src', clicked); 
}); 
</script> 

所以,解决的办法是,把所有的jQuery整合到一个<script></script>中。

<script> 
$(document).ready(function(){ 
    $('#gatb-1').click(function(){ 
    var clicked = $(this).attr('imid'); 
    $('#thmg').attr('src', clicked); 
}); 
}); 
</script> 
0

作品对我来说...

var img = $("#gatb-1").attr('img'); 
$("#thmg").attr('src', img); 

http://jsfiddle.net/chovy/Srx55/

+0

谢谢。但仍然我有一个[对象对象]值在src =“”是因为图像上的循环? – faiz

0

我想你分配到$('#gatb-1')代替clicked的是IMG属性。如果你要使用该代码(我不鼓励这样做),$('#thmg').attr('src', clicked.attr('img'))可能会工作

+0

谢谢,但$('#thmg')。attr('src',点击。attr('img'))'必须传递给哪个变量? – faiz

+0

该代码会改变弹出的图像 – atnatn

0

尝试更换

<script> clicked = $('#gatb-1').click(function() { 
return this.getAttribute('img') }); </script> 

<script> $('#gatb-1').click(function() { 
clicked = $(this).attr('img') }); </script> 
+0

我试图使用这种风格,但它给了我一个像这样的空白输出 faiz

相关问题