2011-11-10 49 views
0

我想开发一个插件,显示网站的截图,当用户点击评论的作者的名字。 所有的作品只有一个评论,但是当多个评论脚本不起作用时。 我认为问题出在每个评论发布的变量的名称上。 但我不知道如何动态更改JS变量的名称以及如何动态调用它。WordPress的和JavaScript的鼠标悬停

这是鼠标悬停的代码(在头)

<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)”',然后你可以使它成为一个函数'function MouseChange(picImage){document ['Img2']。src = picImage; ''不要像那样关闭你的图像。将其从“”更改为“”。它应该全部在一个标签中完成。 –

+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> 

所以我所做的是与博客文章ID替换所有的号码,那么你可以按[比较]确保它是独一无二的,只要页面没有其他部位使事情称为“图#”。

+0

不起作用,似乎js忽略了php变量 – Pigi

+0

Javascript不能忽略这个变量。如果这就是发生了什么,那么也许你没有正确地获得Blog Post ID,你能说你是如何初始化它的?当你echo $ blogPostID时会发生什么?它有价值吗? –

+0

这是粘贴bin代码,http://pastebin.com/j2YZS2BU现在JS接受变量,但没有做覆盖,也许问题是imgsrc是dinamically生成的? – Pigi