javascript - jQuery .click 函数不适用于 < td > 标签?

标签 javascript jquery html html-table jquery-click-event

因此,我正在使用 Javascript 和 jQuery 创建一个表格,我希望这样当您单击表格第一行的 td 时,该列中的其余 td 会下拉。让我试着通过展示我的代码来解释它。这是我的 Javascript:

function createTr (heights) { //heights is just an array of words
    for (var h=0; h<heights.length; h++) { 
        var theTr = $("<tr>", { id: "rowNumber" + h});
        for (var i=0; i<heights.length-3; i++) { 
            theTr.append($("<td>", { "class": "row"+h + " column"+i,
                                     html: heights[h][i]
                                   }));
        }
        $('#newTable').append(theTr); // append <tr id='rowNumber0'> to the table (#newTable), which is written in the html
    }
}

这基本上创建了 td,每个 td 都类似于这种格式

<td class="rowh columni">

我想要它,以便隐藏所有 td,除了 .row0 中的 td,如果您单击 .row0 .columni 中的 td,那么 .columni 中的所有 td 都会出现。参数'heights'只是一个数组,比如可以是

var heights = [['headerOne', 'headerTwo'], ['someTd', 'anotherTd'],];

它会使用这些词创建一个表,headerOne 和 headerTwo 会在第一行,someTd 和 anotherTd 会在第二行。

现在,当我尝试添加这样的点击功能时

function animation() {
    $('td').click( function() {
        alert('clicked');
    });
}

然后像这样在我的 document.ready 函数中调用它

$(document).ready( function() {

    createTr(heights);
    animation();
});

当我点击 td 时它没有做任何事情。怎么会?

最佳答案

http://api.jquery.com/on/

因为您是在创建 DOM 之后创建元素。使用“on”选择器获取动态创建的精确元素。

来自网址:

   $("#newTable").on("click", "td", function() {
     alert($( this ).text());
   });

关于javascript - jQuery .click 函数不适用于 < td > 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19641188/

相关文章:

html - 奇怪的顶部间隙和不居中的 CSS

javascript - 在 ASP.Net MVC 中,如何在单击时显示和隐藏 3 个 @Html.ActionLink 按钮?

javascript - JSON.stringify(ComplexArray) 返回一个空字符串

javascript - setTimeout 在循环表达式中只发生一次

javascript - JQuery:如何在仍然触发父 onclick 事件的同时停止子 onclick 事件

jquery - 使用 jQuery 和 AJAX 交换 Div 内容和 CSS

html - 在元素两侧均匀分布溢出文本

javascript - 尝试动态设置 MetaTag

javascript - jQuery 事件处理程序

javascript - 使用 JQuery 获取触发事件的元素的类