3

これは私の問題です。私は自分のサイトで独自の画像ポップアップを作成しています。

これはポップアップ前のスクリプトです

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

*注: clickedはグローバル変数です

これは絵のコードです:

<?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; ?>

次に、ポップアップ コードが画像コードの下で呼び出されます。これは、ポップアップ display: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]">

では、どうすれば属性を渡すことができますか? または私は何か間違ったことをしていますか?

4

4 に答える 4

0

img属性の代わりに割り当て$('#gatb-1')ていると思います。clickedあなたがそのコードを使うつもりなら(私はそれを奨励しません)、$('#thmg').attr('src', clicked.attr('img'))おそらくうまくいくでしょう

于 2012-12-14T08:28:14.533 に答える
0

交換してみてください

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

 <script> $('#gatb-1').click(function() { 
 clicked = $(this).attr('img') }); </script>
于 2012-12-14T08:28:46.377 に答える
0

私のために働く...

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

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

于 2012-12-14T08:18:21.160 に答える
0

私はそれを見つけた!偽のコードなどではありません。その理由は、<script></script>グローバルが異なるためです。その理由は、<script></script>1 つのファイルに 2 つの場所があるためです。

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

次に、別の変数にアクセスする と、それが機能<script></script>しなくなります。

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

したがって、解決策は、すべての JQuery を 1 つ<script></script>だけに結合することです。

<script>
$(document).ready( function(){
   $('#gatb-1').click( function(){
    var clicked = $(this).attr('imid');
    $('#thmg').attr('src', clicked);
});
});
</script>
于 2013-01-30T08:06:11.983 に答える