javascript - onmouseover 事件更改另一个元素的 css - 两者都具有相同的动态 ID

标签 javascript jquery css

我有来自 for 循环的图像元素,右上角有一个 X,用于将它们从数据库中删除。

我决定将其改为单击图像将其删除。在那之后,我完全失去了 X,但我突然想到,如果 X 显示备份 onmousover 以指示图像将被删除(仍然不确定我是否要使用不透明度 0 -> 不透明度 1 或白色 -> 红色)。

这是我的图片:

<div class="close"><i id="<?php echo $images[$i]->id; ?>" class="fas fa-times"></i></div>
<img id="<?php echo $images[$i]->id; ?>" onclick="delete_img(this.id);" onmouseover="show_x(this.id)" src="https://drive.google.com/thumbnail?id=<?php echo $images[$i]->image_id; ?>&export=view&sz=w250">

还有我的 jquery

function show_x(id)
{
  $("#" + id).css("color", "red");
}

相关 CSS:

.fas
{
    color: #ffffff;
}

确实感觉这应该行得通,但实际上行不通。我知道我正在进入这个功能,因为我可以写:

alert(id);

它完全符合我的预期。我知道 jQuery 运行正常,因为其他 jQuery 函数 delete_img(id) 运行正常。

任何见解都值得赞赏。如果这是一个愚蠢的问题,请原谅我,因为我不知道我在做什么。

我也试过给他们不同的 ID..比如将“x_”添加到 Font Awesome div ID,并像这样修改 jQuery:

function show_x(id)
{
  $("#x_" + id).css("color", "red");
}

但这也没有用。

Taplar,看这个:

<i class="fas fa-times <?php echo $images[$i]->id; ?>" style="color: white;"></i>

function show_x(id)
{

  $("."+id).css("color", "red");
}

很抱歉制作了无效的网络标记,但这似乎也不起作用。

最佳答案

您可以使用 CSS 来定位关闭图标,而不是依赖 jQuery。

如果您放弃鼠标悬停功能,并稍微修改图库代码,那么 delete_img()函数位于包含 img 的标签上,例如 anchor 标记 <a href="#"> .这样您就可以仅使用 CSS 来实现显示删除图标。

您可能需要修改您的 delete_img()适应功能。

请看下面的例子...

a {
  display: block;
  position: relative;
  float: left;
}

a > .fas {
  transition: opacity 0.15s ease-in-out;
  opacity: 0;
  position: absolute;
  top: 20px;
  left: 20px;
  color: white;
  z-index: 2;
}

a:hover > .fas {
  opacity: 1;

}

a:after {
  content: "";
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
  background: black;
  opacity: 0;
}

a:hover:after {
  opacity: .5;
}

img {
  display: block;
}
<a
   id="image-1"
   href="#"
   onclick="delete_img(this.id);"
>
  <i class="fas fa-times">close icon</i>
  <img src="https://i.imgur.com/JJLSCq0.png"/> 
</a>

记得加上event.preventDefault();delete_img() 上功能。我也会避免使用 onclick在你的 html 中。并将其写在您的脚本中。

关于javascript - onmouseover 事件更改另一个元素的 css - 两者都具有相同的动态 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51975291/

相关文章:

javascript - 从 iFrame 访问其父级标签

javascript - 获取 json 数据在 IE 中有效,但在 FF 和 Chrome 中无效

javascript - 使用 for 循环压缩代码

javascript - jquery 函数对具有 2 个类的文本框求和

javascript - 限制可见输入区域中的文本

javascript - jQuery TimeCircles 事件监听器范围

html - 如何: auto resize featured image,博主?

html - 着色中断命令

html - 在我们的网站上选中后复选框不显示

javascript - 无法设置未定义的属性 'background'