javascript - 只有所选图像的边框颜色必须更改。当我单击 div 内的某些图像时,必须删除以前的图像选择
问题描述
任何帮助将不胜感激!我正在研究Angular8。为了获得进一步的帮助,我还观看了一张图片,您可以在其中看到我单击的任何图片上的所有 div 都被选中。而不是从上一个图像中删除边框效果并仅在选定的 div 上显示。
我的 HTML 代码
<img
src="{{category?.CategoryImage || 'https://giftclubimagestorage.blob.core.windows.net/images/biryani.jpg'}}"
class="rounded-circle"
alt="{{category?.CategoryTitle || ''}}" class="imgrr">
</div>
</div>
我的 CSS 代码
.icon:hover {
border: 2px solid red;
}
.selitem
{
border: 20px solid blue;
}
我的 TS 代码
[![public sel(event): void {
const divs = document.getElementById('container').getElementsByTagName('div');
for (let i = 0; i < divs.length; i++) {
if (divs\[i\] !== event.target) {
divs\[i\].className = 'icon';
}
}
event.target.className = 'selitem';
}]
解决方案
为此,我会让每一个可选择的图像都有一个类,例如.selectable
,点击指向一个函数,例如:
function clickHandler(element) {
// Get currently selected element(s)
const old = document.getElementsByClassName("selectable");
for (i = 0; i < old.length; i++) {
// Remove current selected class
console.log(old[i].classList.remove("selected"));
}
// On element that called the function add selected class
element.classList.add("selected");
}
JSFiddle 上的实时示例:https ://jsfiddle.net/36pszgxo/15/
推荐阅读
- node.js - 共享连接的 Axios 超时
- android - 升级android应用,如何覆盖sqlite
- reactjs - 从canvasjs的react js中渲染多个图形
- node.js - 过滤角材料
- python-3.x - 为什么在 Flask 中放置路由时出现 SQL IntegrityError?
- flutter - 变换 FlutterRenderer 或 SurfaceTexture
- r - 根据单独的参考表过滤数据框
- jpa - 无法使用 JPA 上的请求结果类型错误为具有多个返回的查询创建 TypedQuery
- python - 有没有办法在修补套接字时避免修补 IPython 嵌入?
- asp.net - 团队:个人选项卡 => 成功的身份验证重定向回登录页面(由于未设置 cookie)