这是弹出窗口之前的脚本
<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>
我在弹出窗口之前也尝试过这段代码,但它是一样的。总是返回[object Object]或返回null
$(this).attr('imid')
结果如下:
<img src="[object object]">
那么,我该如何传递属性?或者我做错了什么?
答案 0 :(得分:0)
适合我...
var img = $("#gatb-1").attr('img');
$("#thmg").attr('src', img);
答案 1 :(得分:0)
我认为您将$('#gatb-1')
分配给clicked
而不是img属性。如果您要使用该代码(我不鼓励它),$('#thmg').attr('src', clicked.attr('img'))
可能会起作用
答案 2 :(得分:0)
尝试替换
<script> clicked = $('#gatb-1').click(function() {
return this.getAttribute('img') }); </script>
到
<script> $('#gatb-1').click(function() {
clicked = $(this).attr('img') }); </script>
答案 3 :(得分: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>