2013-06-30 50 views
0

我正在处理我的网站上的一部分人们可以在出版物上投票的内容,我在同一个页面上有很多内容,然后每个出版物都有两个图像一个同意,另一个不同意。我想改变图像,所以当有人投票时,无论是否同意,图像改变说他已经投了票。 这里是我的代码:JS事件源检测

JPS:

<logic:iterate id="comment" name="Liste_Comments" scope="request"> 
<html:img src="pages/images/ok.png" alt="Vote pour!" paramId="code" paramName="comment" paramProperty="code" onclick="voterComment('pour');"/> 

<html:img src="pages/images/ko.png" alt="Vote contre!" paramId="code" paramName="comment" paramProperty="code" onclick="voterComment('contre');"/>  

     <bean:write name="comment" property="libelle" />  
     <bean:write name="comment" property="subject" /> 
     <br>  
</logic:iterate> 

脚本:

<script type="text/javascript"> 
      function voterComment(vote) {    
       var url = "<%=request.getContextPath()%>/VoteComment.do"; 
       new Ajax.Request(url, { 
        parameters: {vote: vote}, 
        onSuccess: function(transport, json) { 
         if (json.error) { 
          alert(json.error); 
         } 
         else{ 
          window.event.srcElement.src = "pages/images/photo.jpg"; 
         } 
        } 
       }); 
      } 
    </script> 

我必须获得被点击的图像的问题!

谢谢你们,提前为您的帮助很大:)

回答

0

你可以改变你的HTML的this值发送到单击处理程序。这将包含对源元素的引用 - 在这种情况下是单击的图像。

<html:img ... paramProperty="code" onclick="voterComment(this, 'pour');"/> 

的Javascript:

function voterComment(sourceImage , vote) {  
    var url = "<%=request.getContextPath()%>/VoteComment.do"; 
    new Ajax.Request(url, { 
     parameters: {vote: vote}, 
     onSuccess: function(transport, json) { 
      if (json.error) { 
       alert(json.error); 
      } 
      else{ 
       sourceImage.src = "pages/images/photo.jpg"; 
      } 
     } 
    }); 
} 
+0

无论是一个,我都尝试 但在我看来,两者是相同的! –

+0

好吧,让我试试看,我不应该安装别的东西来看看结果! –

+0

它显示了这个: [对象窗口] –