Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
asp:imagebutton,从javascript/jquery更改图像_Javascript_Jquery_Asp.net - Fatal编程技术网

asp:imagebutton,从javascript/jquery更改图像

asp:imagebutton,从javascript/jquery更改图像,javascript,jquery,asp.net,Javascript,Jquery,Asp.net,如何更改图像按钮客户端的图像,单击 我试过这个: function changetoDownload(theId) { $(theId.id).delay(2000) .queue(function (next) { $(theId).attr("ImageURL", "Images/Apps/free.png"); next(); }); } <asp:ImageButton ID="ImageButton1" OnClick="Button7_Click" OnClien

如何更改图像按钮客户端的图像,单击

我试过这个:

function changetoDownload(theId) {
   $(theId.id).delay(2000)
   .queue(function (next) { $(theId).attr("ImageURL", "Images/Apps/free.png"); next(); });
}

<asp:ImageButton ID="ImageButton1" OnClick="Button7_Click" OnClientClick="changetoDownload(this.id);" ImageUrl="Images/download.gif" runat="server" />
功能更改为下载(theId){
$(theId.id).延迟(2000)
.queue(函数(next){$(theId).attr(“ImageURL”,“Images/Apps/free.png”);next();});
}

JQuery在客户端运行。javascript无法工作的原因是“asp”标记呈现在服务器端,一旦显示在客户端,标记将更改为HTML。您引用的是HTML中不存在的ImageURL属性,它将是“src”属性。您可以通过部署代码,然后在浏览器中使用“查看源代码”来检查这一点

//target all `<input type="image" />` elements and bind a `click` event handler to them
$('input[type="image"]').on('click', function () {

    //change the `src` of this element
    $(this).attr('src', 'Images/Apps/free.png');
});
您可以在浏览器中检查文档的源,以查看该源是否是ASP按钮的实际呈现ID

下面是一个演示:

这在JavaScript中非常简单

HTML代码

<asp:ImageButton ID="img" runat="server"  OnClientClick="return abc(this);" />
<script language="javascript" type="text/javascript">
function abc(ImageID) {
    var img = document.getElementById(ImageID.id);
    img.src = "Jellyfish.jpg";
    return false;
}

</script>


JavaScript代码

<asp:ImageButton ID="img" runat="server"  OnClientClick="return abc(this);" />
<script language="javascript" type="text/javascript">
function abc(ImageID) {
    var img = document.getElementById(ImageID.id);
    img.src = "Jellyfish.jpg";
    return false;
}

</script>

函数abc(图像ID){
var img=document.getElementById(ImageID.id);
img.src=“jellyphish.jpg”;
返回false;
}

View source显示其呈现为:从那里可以看到图像链接呈现为“src”。上面的Jasper有正确的解决方案,从你的帖子中你可以看到ID是MainContent\u ImageButton1,所以在上面的代码示例中用它代替ImageButton1。我勾选了它,因为它是真实的,包含有用的相关信息,但遗憾的是,这对我来说是不够的。我可以看到src属性和innerHTML字段在浏览器调试器中已正确更新,但旧图像仍会继续显示!:(OP正在使用母版页,正如他在评论中所说的。所以我认为,在你的情况下ID是不可追踪的。$('MainContent_ImageButton1')。在('click',function(){//更改此元素$(this.attr('src','Images/Apps/free.png');)上;OP发布了元素的HTML源代码,它是一个ID为
MainContent\u ImageButton1
input
标记。因此我上面的任何一个选择器都应该可以工作(除非框架可以更改ID,我不确定)。当使用MainContent_ImageButton1作为ID时,我在评论中发布的上述内容是有效的。但我可以使用多个按钮来实现吗?而不必为每个ImageButton创建函数?@ClemenGronver在这种情况下,您应该向元素添加一个类以将它们组合在一起,这样您就可以像这样选择它们:
$('.my custom class')。on('click',function(){…});
,或者您可以使用我的答案
$('input[type=“image”])
中的第一个选择器,它选择所有
元素(如您的按钮)。您也可以同时选择多个元素,用逗号分隔选择器:
$(“#主要内容"图像按钮1、#主要内容"图像按钮2、#主要内容"图像按钮3”)…
既然使用的是jQuery,那么您最好利用easy binding系统,而不是使用内联JS,因为您可能需要更新许多代码,而不是执行所有事件处理的单个代码。我可以将此函数保存在JavaScript文件中,并且可以重复使用。仅供参考,请检查标记和标题。我有类似于上述的代码,但尽管我可以看到它确实在调试器中更改了src,但旧图像仍会继续显示。似乎还需要一些其他内容:(