jquery表行单击功能

时间:2009-06-20 15:22:10

标签: javascript jquery event-handling

我有一个函数,允许用户通过打开模态中的数据来编辑表中的行。现在,整行将触发模态。我想要的是隔离包含一个链接的最后一个td,该链接触发一个准备处理数据的函数。

当点击最后一个td时,会发生模态打开并且就绪功能触发。我试图阻止模态开启。

我还在表的每一行上突出显示鼠标悬停行。

这就是我将表行与模态函数关联的方式:

$("#table").find("tr").click(function(e) {

 //code to open model
 }

这是我解雇就绪功能的方法:

$("#table tr td:last-child a").click(function(e) {
//code to open model
 }

3 个答案:

答案 0 :(得分:1)

只需添加“return false;”:

$("#table tr td:last-child a").click(function(e) {
    // whatever should happen when clicking the anchor
    return false;
}

这可以防止事件传播到周围的tr

答案 1 :(得分:1)

我相信你需要调用e.stopPropogation()来防止事件传播:

$("#table tr td:last-child a").click(function(e) {
    //code to open model
    e.stopPropagation();
    return false;
}

<强>解释

事件从最“特定”的元素传播到父母。这称为冒泡,在这种情况下,您的第二个模态被触发,因为click事件从A元素冒泡到TR元素。

我相信所有事件都会传播并冒泡。返回false只是取消A元素的默认操作,即跟随链接...它不会停止事件对象。

这是整个事情的good explanation

答案 2 :(得分:0)

为什么不在表中任何行的最后一个单元格中找到链接,只需为链接指定一个id或类

喜欢......

然后从css中添加display:block属性,使锚点填充它所包含的整个区域。

然后简单地

$('.anchorclass').click(function(){

//在这里做点什么

});