Javascript ASP.Net鼠标悬停时更改ImageButton.ImageUrl

Javascript ASP.Net鼠标悬停时更改ImageButton.ImageUrl,javascript,asp.net,imagebutton,Javascript,Asp.net,Imagebutton,我正在学习ASP.Net。我有一个动态创建的ImageButton,当用户将鼠标悬停在控件上时,我想更改它的ImageURL。我尝试过这个方法,但不起作用: imgStars.Attributes.Add("onmouseover", "this.src= '~/Images/4Stars.png'") 如果我将codebehind中的imgStars.ImageURL设置为~/Images/4Stars.png,它就会工作。但它在javascript中不起作用 请帮忙。我已经试着寻找我的答

我正在学习ASP.Net。我有一个动态创建的ImageButton,当用户将鼠标悬停在控件上时,我想更改它的ImageURL。我尝试过这个方法,但不起作用:

 imgStars.Attributes.Add("onmouseover", "this.src= '~/Images/4Stars.png'")
如果我将codebehind中的imgStars.ImageURL设置为~/Images/4Stars.png,它就会工作。但它在javascript中不起作用

请帮忙。我已经试着寻找我的答案好几个小时了,但我不知道该怎么办

“xanadont”对您的回答是正确的,但您的解决方案并不适用于所有场景。要确保客户端可以使用每个相对目录,请使用以下代码段:

imgStars.Attributes.Add("onmouseover", "this.src= '" + this.Page.ResolveClientUrl("~/Images/4Stars.png") + "'");

在VB中,应使用以下代码:

    *imgBtnRegister.Attributes.Add("onmouseover", "this.src='" + Page.ResolveClientUrl("~/Images/Register_2.jpg") + "'")
        imgBtnRegister.Attributes.Add("onmouseout", "this.src='" + Page.ResolveClientUrl("~/Images/Register_1.jpg") + "'")*

use *Page.ResolveClientUrl("~/Images/Register_2.jpg")* instead of *this.Page.ResolveClientUrl("~/Images/Register_2.jpg")*

波浪号“~”是*服务器上用于路径解析的特殊字符。这种路径在客户端(脚本将在客户端运行)上不起作用。你需要呈现一个浏览器能够理解的路径。这就成功了。我讨厌答案这么简单。我将“~/Images/4Stars.png”改为“Images/4Stars.png”,效果很好。我不知道如何将你的评论标记为答案。如果你告诉我。再次感谢你的帮助。但是我在“this”上得到一个错误,它说它是未定义的。我用VB而不是C#编写代码。这会有区别吗?是的,这是语法上的区别。用“我”代替“这个”