2011-11-10 16 views
0

私は、コメントの著者の名前をクリックすると、ウェブサイトのスクリーンショットを表示するプラグインを開発しようとしています。 すべてが1つのコメントだけで動作しますが、複数のコメントがある場合、スクリプトは機能しません。 私はこの問題が、各コメントに対して呼び出された変数の名前にあると思います。 しかし、私はどのように動的にJS変数の名前を変更する方法とそれを動的に呼び出す方法がわかりません。WordpressとJavascript mouseover

これは(ヘッダーに)マウスオーバーするためのコードで

<script type="text/javascript"> 
function MOver(picimage) 
{ 
Picture_Over = eval(picimage +"On.src") 
document[picimage].src = Picture_Over 
} 
function MOut(picimage) 
{ 
Picture_Out = eval(picimage +"Off.src") 
document[picimage].src = Picture_Out 
} 
--> 
</script> 

その後、これはマウスオーバーを表示するためのコードです:

<script type="text/javascript"><!-- 

var Img2On = new Image(); 
Img2On.src = "<?php echo $urlnohttp;?>"; 
var Img2Off = new Image(); 
Img2Off.src = "<?php bloginfo('url');?>/wp-content/plugins/[...]/control_play.png"; 

</script> 
<a href="<?php echo $commenturl ?>" onMouseOver="MOver('Img2')" onMouseOut = "MOut('Img2')" ><?php echo $author ?> <img src="<?php bloginfo('url');?>/wp-content/plugins/[...]/control_play.png" border="0" name="Img2"></img></a> 

私は問題は「IMG2」の名前であると思いますユニークではありません。

+0

なぜテキストを渡して、それを変数に評価していますか?変数onMouseOver = "Mover(Img2On.src)"を渡すことができます。次に、関数MouseChange(picImage){document ['Img2']の1つの関数にすることができます。 }そして、そのようなあなたのイメージを閉じないでください。それを ''から ''に変更してください。すべて1つのタグで実行する必要があります。 –

+0

お返事ありがとうございますが、私は理解していません、あなたは説明できますか?ありがとう – Pigi

答えて

0

私はこの答えに私のコメントのほとんどを超える移動しています:

動的変数を呼び出すには、次のように見えるように機能を変更します。

function MouseChange(img , imageSrc) // img will be the tag name, and imageSrc will be the URL of the image 
{ 
    document[img].src = imageSrc; 
} 

これを呼び出すには、あなたがこれを行います。

<?php $blogPostID = ???;// I don't know how to get blog post ID of the top of my head ?> 
<script type="text/javascript"><!-- 
    var Img<?= $blogPostID ?>On = new Image(); 
    Img<?= $blogPostID ?>On.src = "<?php echo $urlnohttp;?>"; 
    var Img<?= $blogPostID ?>Off = new Image(); 
    Img<?= $blogPostID ?>Off.src = "<?php bloginfo('url');?>/wp-content/plugins/[...]/control_play.png"; 
// this closes the HTML comment: --></script> 

<a href="<?php echo $commenturl ?>" onMouseOver="MouseChange('Img<?= $blogPostID ?>' , Img<?= $blogPostID ?>On.src)" onMouseOut = "MouseChange('Img<?= $blogPostID ?>' , Img<?= $blogPostID ?>Off.src)" ><?php echo $author ?> 
    <img src="<?php bloginfo('url');?>/wp-content/plugins/[...]/control_play.png" border="0" name="Img<?= $blogPostID ?>" /> 
</a> 

だから何私がやったことは、あなたが[比較的]それは限りページの他の部分は、物事は「IMG番号」と呼ばせないよう、ユニークであることを確認することができ、ブログ記事のIDを持つすべての番号を交換しました。

+0

は動作しませんjsはPHP変数を無視します – Pigi

+0

Javascriptは変数を無視できません。それが起こっている場合は、Blog Post IDが正しく取得されていない可能性があります。どのように初期化していますか?あなたが '$ blogPostID;をエコーするとどうなるでしょうか?それは価値がありますか? –

+0

これは貼り付けのビンコードです。http://pastebin.com/j2YZS2BUは変数を受け入れますが、オーバーレイをしません。おそらく問題はimgsrcがdinamically生成されるということですか? – Pigi