相关疑难解决方法(0)

如何用jquery live停止事件冒泡?

我试图阻止一些事件,但stopPropagation不适用于"live",所以我不知道该怎么做.我在他们的网站上发现了这个.

直播活动不会以传统方式冒泡,也无法使用stopPropagation或stopImmediatePropagation停止.例如,假设有两个点击事件 - 一个绑定到"li",另一个绑定到"li a".如果内部锚点发生咔嗒声,将触发BOTH事件.这是因为当$("li").bind("click",fn); 您实际上是在说"只要在LI元素上发生click事件 - 或者在LI元素内部 - 触发此单击事件." 要停止对直播事件的进一步处理,fn必须返回false

它说fn必须返回false,所以我试图做

 $('.MoreAppointments').live('click', function(e) {
   alert("Hi");
   return false;
 });
Run Code Online (Sandbox Code Playgroud)

但这没有用,所以我不知道如何让它返回false.

更新

这是一些更多的信息.

我有一个表格单元格,我将点击事件绑定到它.

 $('#CalendarBody .DateBox').click(function(e)
    {
        AddApointment(this);
    });
Run Code Online (Sandbox Code Playgroud)

所以AddApointment只是做了一些ui对话框.

现在,实时代码(MoreAppointments)位于此表格单元格中,基本上是一个锚标记.因此,当我点击锚标签时,它首先转到上面的代码(addApointment - 所以首先运行该事件)运行但不启动我的对话框,而是直接进入(MoreAppointment)事件并运行该代码.该代码运行后,它将从"addApointment"启动对话框.

更新2

这是一些HTML.我没有复制整个表格,因为它有点大,所有单元格都用相同的数据重复.如果需要,我会发布它.

 <td id="c_12012009" class="DateBox">
        <div class="DateLabel">
            1</div>
        <div class="appointmentContainer">
            <a class="appointments">Fkafkafk fakfka kf414<br />
            </a><a class="appointments">Fkafkafk fakfka kf414<br />
            </a><a class="appointments">Fkafkafk fakfka kf414<br />
            </a><a class="appointments">Fkafkafk fakfka kf414<br />
            </a><a class="appointments">Fkafkafk fakfka kf414<br />
            </a>
        </div>
        <div class="appointmentOverflowContainer">
            <div>
                <a class="MoreAppointments">+1 More</a></div>
        </div>
    </td>
Run Code Online (Sandbox Code Playgroud)

javascript jquery dom event-delegation

30
推荐指数
3
解决办法
2万
查看次数

标签 统计

dom ×1

event-delegation ×1

javascript ×1

jquery ×1