Reputation: 2583
Whats the jquery script to change the imageurl on button mouse hover?
<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/Images/go.png"
PostBackUrl="~/Rep.aspx" />
Upvotes: 0
Views: 8661
Reputation: 28906
You can do it in CSS:
<style type="text/css">
#ImageButton1:hover { background-image: url('~/your_url/here') }
</style>
Upvotes: 6
Reputation: 66
I agree with George Cummins answer above, however, I had to switch to a LinkButton and define the button dimensions in CSS:
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeBehind="Default.aspx.cs" Inherits="Sandbox_Asp.NET._4._0._Default" %>
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
<style type="text/css">
.ImgBtnAdd
{
background-image: url('/images/add.png');
background-repeat: no-repeat;
display: block;
height: 31px;
width: 60px;
border: 0;
outline: 0 !important;
}
.ImgBtnAdd:hover
{
background-image: url('/images/add_over.png');
}
</style>
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
Hover over the button:
<asp:LinkButton runat="server" ID="LinkButtonAdd" CssClass="ImgBtnAdd"
ToolTip="Add Button" Text="" />
</asp:Content>
Upvotes: 1
Reputation: 75073
change your code into this
<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/Images/go.png"
PostBackUrl="~/Rep.aspx" data-imageover="~/Images/go-hover.png" />
you can have multiple image buttons like:
<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/Images/go1.png"
PostBackUrl="~/Rep.aspx" data-imageover="~/Images/go1-hover.png" />
<asp:ImageButton ID="ImageButton2" runat="server" ImageUrl="~/Images/go2.png"
PostBackUrl="~/Rep.aspx" data-imageover="~/Images/go2-hover.png" />
<asp:ImageButton ID="ImageButton3" runat="server" ImageUrl="~/Images/go3.png"
PostBackUrl="~/Rep.aspx" data-imageover="~/Images/go3-hover.png" />
then add the script
$(function() {
// search all input type image, where data-imageover exists
$("input[type='image'][data-imageover]").each(function() {
$(this).hover(
function() { // on mouseover
$(this).data("originalImg", $(this).prop("src")); // save original
$(this).prop("src", $(this).prop("data-imageover"));
},
function() { // on mouseout
$(this).prop("src", $(this).data("originalImg")); // change to original
}
});
});
Upvotes: 3
Reputation: 3227
You can try this ...
var old_image = '';
$('<%= this.ImageButton1.ClientID %>').hover
(
function()
{
old_image = $(this).attr('src');
$(this).attr('src','/path/to/new_image');
},
function()
{
$(this).attr('src',old_image);
}
);
You should use it, right after the button declaration inside a script block.
Upvotes: 0
Reputation: 4244
First bind it with ( id or class ) hover function
change the src of image with attr
Upvotes: 0
Reputation: 3055
$(document).ready(function(){
$("input[type='image']").hover(function(){
$(this).attr("src","your/image.png");
},function(){
$(this).attr("src","your/old/image.png");
});
});
Upvotes: 1