onClick(),onMouseOver()和onMouseOut()与图像

到目前为止,我已经有了这个工作,因此它有一个“基本”图像,点击图像,并将图像更改为“活动图像,但我不希望它在鼠标移出时恢复原始图像,如果图像已单击 – 我希望它保持在单击图像上,直到单击另一个图像。

这是我的HTML

在js会是这样的

 onmouseover="image.src='/design/zebra/images/booking/1stolik_aktiv.png'"; onmouseout="image.src='https://stackoverflow.com/design/zebra/images/booking/1stolik.png'"; onClick="image.src='/design/zebra/images/booking/1stolik_clicked.png'"; 

HTML

 

CSS

 #image1 { position: absolute; left: 103px; top: 300px; } 

jQuery的

 $(document).ready(function () { $('#img').onMouseOver.attr('src','/design/zebra/images/booking/1stolik_active.png'); $('#img').click(function () { this.attr('src', '/design/zebra/images/booking/1stolik_clicked.png'); $('#img2').attr('src','https://stackoverflow.com/design/zebra/images/booking/2stolik.png'); }); $('#img2').onMouseOver.attr('src','/design/zebra/images/booking/2stolik_active.png'); $('#img2').click(function () { this.attr('src', '/design/zebra/images/booking/2stolik_clicked.png'); $('#img').attr('src','https://stackoverflow.com/design/zebra/images/booking/1stolik.png'); }); }); 

你为什么不使用JQuery?

 $(document).ready(function(){ var clicked = false; $("#img").on({ mouseenter: function (event) { if(clicked) return false; $(this).attr('src','new.jpg'); }, mouseleave: function (event) { if(clicked) return false; $(this).attr('src','new.jpg'); }, click: function (event) { clicked = true; $(this).attr('src','new.jpg'); } }, "body" ); }); 

您可以在单击图像后将其添加到图像中,如果此图像具有该类,则可以在鼠标hoverfunction测试中添加。

如果class级不在那里继续,否则preventDefault。

就像是

 $('.image').mouseover(function(){ if(!$(this).hasClass('clicked')){ // code to change source here } }); 

在click事件中使用

 $('.image').click(function(){ // to avoid repition if(!$(this).hasClass('clicked')){ $(this).addClass('clicked'); // code to change the source } }); 

而已

你在用jquery吗? 然后你就可以做到这一点

 $('#img').on('click', function () { //click event goes here $(this).attr("src", "/design/zebra/images/booking/1stolik_aktiv.png"); }); $('#img').hover( function () { //hover event $(this).attr("src", "https://stackoverflow.com/design/zebra/images/booking/1stolik.png"); }, function () { //hover out event $(this).attr("src", "/design/zebra/images/booking/1stolik_clicked.png"); });