如何使用jQuery的live方法停止事件冒泡?

15 浏览
0 Comments

如何使用jQuery的live方法停止事件冒泡?

我正在尝试阻止一些事件,但是使用"live"时stopPropagation不起作用,所以我不确定该怎么办。我在他们的网站上找到了这个。

live事件无法像传统方式那样冒泡,并且无法使用stopPropagation或stopImmediatePropagation进行停止。例如,考虑两个点击事件-一个绑定到"li",另一个绑定到"li a"。如果在内部的锚点上发生点击,两个事件都会被触发。这是因为当绑定了$("li").bind("click", fn);时,实际上是在说"每当在LI元素上或在LI元素内发生点击事件时,触发此点击事件"。为了停止live事件的进一步处理,fn必须返回false。

它说fn必须返回false,所以我尝试了以下操作

 $('.MoreAppointments').live('click', function(e) {
   alert("Hi");
   return false;
 });

但是这没起作用,所以我不知道如何使其返回false。

更新

这里有更多的信息。

我有一个表格单元格,并给它绑定了一个点击事件。

 $('#CalendarBody .DateBox').click(function(e)
    {
        AddApointment(this);
    });

所以AddApointment只是生成一些UI对话框。

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

更新2

这里是一些HTML代码。我没有复制整个表格,因为它有点大,而且所有的单元格都是重复的相同数据。如果需要,我可以贴出来。

 
            1
            Fkafkafk fakfka kf414
            Fkafkafk fakfka kf414
            Fkafkafk fakfka kf414
            Fkafkafk fakfka kf414
            Fkafkafk fakfka kf414
            
                +1 More
    

0