将一键式事件处理程序应用于多个元素

用户名

我正在尝试让我的JavaScript在单击每个评论时在其下方弹出一条消息。

我有3个评论框,每个评论框下面都有1个“弹出”按钮,单击“弹出”框后,它会提示消息(“ Ouyeah!”)

仅单击顶部的第一个“弹出”链接将提示消息“ Ouyeah!”,并且该消息被警告3次。单击其他2个“弹出”链接无效。

代码:

<div class="media">
<div class="media-body">
<p align="right">
<span><a href='javascript:;' id="reply_open">popup</a></span>
<div class="reply_form_div" STYLE="display:none;"></div>
</p>
</div>

<div class="media">
<div class="media-body">
<p align="right">
<span><a href='javascript:;' id="reply_open">popup</a></span>
<div class="reply_form_div" STYLE="display:none;"></div>
</p>
</div>

<div class="media">
<div class="media-body">
<p align="right">
<span><a href='javascript:;' id="reply_open">popup</a></span>
<div class="reply_form_div" STYLE="display:none;"></div>
</p>
</div>

JS:

<script type="text/javascript">
$("#reply_open").parent().parent().parent().parent().children(".media-body").children("p").children("span").children("#reply_open").click(function(){
alert ("Ouyeah!");
</script>

仅单击顶部的第一个“弹出”链接将提示消息“ Ouyeah!”,并且该消息被警告3次。单击其他2个“弹出”链接无效。

如何解决这个问题?非常感谢,

塞布鲁斯

首先,您的HTML在以下几种方面是错误的:

  • id's必须是唯一的
  • 您没有关闭.mediadiv标签。
  • 您正在将JavaScript用于空的href

尝试以下方法:

<div class="media">
    <div class="media-body">
        <p align="right">
            <span><a href='./'>popup</a></span>
            <div class="reply_form_div" STYLE="display:none;"></div>
        </p>
    </div>
</div>

<div class="media">
    <div class="media-body">
        <p align="right">
            <span><a href='./'>popup</a></span>
            <div class="reply_form_div" STYLE="display:none;"></div>
        </p>
    </div>
</div>

<div class="media">
    <div class="media-body">
        <p align="right">
            <span><a href='./'>popup</a></span>
            <div class="reply_form_div" STYLE="display:none;"></div>
        </p>
    </div>
</div>

id完全删除了,它们不是必需的。.mediadiv的正确关闭,以及JavaScript从HREF中删除。

然后,不要像使用链式.parent()调用那样搜索DOM,而是尝试以下js:

<script>
    $('.media .media-body a').click(function(){
        alert("Ouyeah!");
    });
</script>

这会向每个中添加一个事件处理程序a,该事件处理程序应提醒所需的文本。

工作实例

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

一键处理程序,用于Angular 2中的多个元素

具有多个事件,多个处理程序并应用于新元素的jQuery .on

将jQuery事件处理程序应用于相同类型的所有元素

如何将点击处理程序应用于模板内的多个元素-EXTJS

如何在不刷新标签的情况下将事件处理程序应用于新元素?

Docker适用于一键式CLI应用程序

是否有一种纯Javascript方法将一个函数应用于多个元素的事件?

在 jquery 中由一键事件处理的多个 UL

一键调用Click和LinkClicked事件处理程序

DigitalOcean的一键式应用程序如何维护?

使用Hammer库将代理函数应用于事件处理程序

如何将光标指针属性应用于(单击)事件处理程序?

将事件监听器应用于多个dom元素

使用 keyup 事件将更改动态应用于多个元素

事件应用于多个元素时只触发一次

适用于我的Web应用程序的一键式部署解决方案

jQuery处理程序-如何将操作应用于动态添加的元素

如何将弧度应用于多个调整大小的拖动处理程序

将父鼠标事件应用于子元素

应用于asp.net MVC 5模型属性的唯一键

一键处理多个URL(单击)

将多个属性更改应用于一个元素

R,将功能应用于多个元素

将svg元素应用于多个svg

使用注释将Spring任务计划程序应用于同一Bean的多个实例

一个事件处理程序,用于多个按键事件

如何使类文件将事件处理程序应用于除自身之外的主舞台上的实例或对象?

一键式事件,带有多个触发器,可使内容上下滑动

如何将一个事件处理程序用于多个单选按钮?