JS事件源检测

时间:2013-06-30 21:02:46

标签: javascript

我正在我的网站的一部分工作,人们可以对出版物进行投票,我在同一页面上有很多,接下来每个出版物都有两个图像,一个是同意,另一个是不同意。我想改变图像,所以当有人投票,无论是否同意时,图像会改变,说他已经投了票。 这是我的代码:

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>

我有一个问题是访问被点击的图片!!

先谢谢你们,感谢你们的出色帮助:)。

1 个答案:

答案 0 :(得分:0)

您可以更改html以将this的值发送到点击处理程序。这将包含对source元素的引用 - 在本例中是单击的图像。

<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";
          }
       }
   });
}