jquery - 如何切换 src、mouseover 和 mouseout 的 url - 使用 jQuery
问题描述
我有大约 90 件商品的产品列表,其中包含 src、mouseover、mouseout 属性的图像。基本上 mouseout src 与 image src 相同。翻转工作正常,但我想翻转当前翻转功能。
eg:默认图像(悬停前)应该是当前的翻转图像,翻转图像(悬停时)应该是默认图像。
当前代码:
<div class="item">
<a href="productURL"class="product-image">
<img id="product-collection-image"
src="http://imageUrl-1xxxxxxxxx.jpg" alt="product name"
onmouseover="this.src='http://imageUrl-over-1xxxxxxx.jpg';"
onmouseout="this.src='http://imageUrl-1xxxxxxx.jpg';" />
</a>
</div>
<div class="item">
<a href="productURL"class="product-image">
<img id="product-collection-image"
src="http://imageUrl-2xxxxxxx.jpg" alt="product name"
onmouseover="this.src='http://imageUrl-over-2xxxxxxx.jpg';"
onmouseout="this.src='http://imageUrl-2xxxxxxx.jpg';" />
</a>
</div>
<div class="item">
<a href="productURL"class="product-image">
<img id="product-collection-image"
src="http://imageUrl-3xxxxxxx.jpg" alt="product name"
onmouseover="this.src='http://imageUrl-over-3xxxxxxx.jpg';"
onmouseout="this.src='http://imageUrl-3xxxxxxx.jpg';" />
</a>
</div>
期望的结果:
<div class="item">
<a href="productURL"class="product-image">
<img id="product-collection-image"
src="http://imageUrl-over-1xxxxxxx.jpg" alt="product name"
onmouseover="this.src='http://imageUrl-1xxxxxxxxx.jpg';"
onmouseout="this.src='http://imageUrl-over-1xxxxxxx.jpg';" />
</a>
</div>
<div class="item">
<a href="productURL"class="product-image">
<img id="product-collection-image"
src="http://imageUrl-over-2xxxxxxx.jpg" alt="product name"
onmouseover="this.src='http://imageUrl-2xxxxxxx.jpg';"
onmouseout="this.src='http://imageUrl-over-2xxxxxxx.jpg';" />
</a>
</div>
<div class="item">
<a href="productURL"class="product-image">
<img id="product-collection-image"
src="http://imageUrl-over-3xxxxxxx.jpg" alt="product name"
onmouseover="this.src='http://imageUrl-3xxxxxxx.jpg';"
onmouseout="this.src='http://imageUrl-over-3xxxxxxx.jpg';" />
</a>
</div>
这是我目前拥有的:
var items = $(".item a");
var imgSrc = items.children('img').map(function(){
return $(this).attr('src');
}).get();
var hoverSrc = items.children('img').map(function(){
return $(this).attr('onmouseover').slice();
}).get();
console.log(hoverSrc);
提前谢谢各位。
解决方案
$('.item .product-image img').each(function(index, image){
//get the over logic
var mouseover = image.getAttribute('onmouseover');
//get the out logic
var mouseout = image.getAttribute('onmouseout');
//execute the over logic so it will change the src to be the over url
image.onmouseover();
//swap the over and out logic for each other
image.setAttribute('onmouseover', mouseout);
image.setAttribute('onmouseout', mouseover);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="item">
<a href="productURL" class="product-image">
<img id="product-collection-image" src="http://imageUrl-1xxxxxxxxx.jpg" alt="product name" onmouseover="this.src='http://imageUrl-over-1xxxxxxx.jpg';" onmouseout="this.src='http://imageUrl-1xxxxxxx.jpg';" />
</a>
</div>
<div class="item">
<a href="productURL" class="product-image">
<img id="product-collection-image" src="http://imageUrl-2xxxxxxx.jpg" alt="product name" onmouseover="this.src='http://imageUrl-over-2xxxxxxx.jpg';" onmouseout="this.src='http://imageUrl-2xxxxxxx.jpg';" />
</a>
</div>
<div class="item">
<a href="productURL" class="product-image">
<img id="product-collection-image" src="http://imageUrl-3xxxxxxx.jpg" alt="product name" onmouseover="this.src='http://imageUrl-over-3xxxxxxx.jpg';" onmouseout="this.src='http://imageUrl-3xxxxxxx.jpg';" />
</a>
</div>
推荐阅读
- android - 在android中超时后如何关闭BiometricPromptDialog?
- android-studio - android studio 创建一个应用程序并生成错误
- jenkins - “结帐到匹配的本地分支机构”在“Github 组织”詹金斯工作中不起作用
- c# - 在 ASP.NET Core 3 中使用 System.Text.JSON:决定端点上漂亮的 JSON 输出?
- php - 发送安全的 wordpress ajax 请求
- java - ResponseEntityExceptionHandler 的 Spring 依赖项
- python - 在numpy中查找两个多边形之间的距离
- python - 带有数字和字符串的 Python 列表到 Pandas DataFrame
- javascript - 如何动态构建嵌套对象
- python - Scipy.misc.imread() 被贬低