点击事件上的javascript在img标签上运行不正常

时间:2012-08-15 06:16:20

标签: javascript asp.net

我正在尝试使用以下代码打开图像点击链接

 <img src="AllScripts/SliderImages/images/1Main.png" alt="" title="" onclick="openSliderImage(id);"  onmouseover="this.style.cursor='hand'"  width="800px" height="300px" id="http://www.google.com" />

它工作正常但是当使用c#使用response.write代码生成图像时,它不起作用并继续下面的链接

http://localhost:1234/AllScripts/SliderImages/images/1Main.png

Follwoing代码用于编写html

 <% {

                               Response.Write(SlidingImages);
                       }

                    %>

我知道它会在图片点击时选择image src而不是image id,但为什么? 这是javascript函数

 function openSliderImage(id) {
            alert(id);
            window.open(id, '_blank');
        }

2 个答案:

答案 0 :(得分:1)

更改ID(因为您正在引用名为id的javascript变量,您想要定位图片ID,然后使用this.id

<img src="AllScripts/SliderImages/images/1Main.png" alt="" title="" onclick="openSliderImage(this.id);"  onmouseover="this.style.cursor='hand'"  width="800px" height="300px" id="http://www.google.com" />

我还会说你可以删除onmouseover并使用CSS设置它(如果使用IE7 +)img:hover(或设置一个cssClass,这样就不会有所有图像被定位)。

答案 1 :(得分:1)

使用类似的ID来打开链接看起来像是一个黑客。我只是将url输出到它必须直接作为函数的参数打开的链接。

<img id="googleImg" onclick="openSliderImage('http://www.google.com');" src="AllScripts/SliderImages/images/1Main.png" alt="" title=""   onmouseover="this.style.cursor='hand'"  width="800px" height="300px" />

您的代码未运行,因为它会查找名为“id”的javascript变量。