javascript - 如何使用 jQuery 捕获动态添加的输入 HTML 元素上的鼠标悬停事件?

标签 javascript jquery dom mouseover

我正在将 input 元素动态添加到 table 中,idinputDataElements

这些input元素的名称为deleteAction:

function renderInputDataRows(inputData) {                                                                                                                                                                                                                                                  
    var rows = "";                                                                                                                                                                                                                                                                         
    for (var i = 0; i < inputData.length; i++) {                                                                                                                                                                                                                                           
        rows += '<tr>' +                                                                                                                                                                                                                                                               
            // ...  
            '<td class="rowActions">' + \
            '<input type="image" ' + \
            '      style="position:relative; ' + \
            '               bottom:-2px; ' + \
            '                 left:-4px; ' + \
            '        padding-right:2px;" ' + \
            '       src="images/delete.png" ' + \
            '   onClick="deleteInputDataRow(' + inputData[i].index + ');"' + \
            '      name="deleteAction" ' + \
            '     value="deleteInputDataRow' + inputData[i].index + '"' + \
            '      size="18,18" ' + \
            '    border="0" />' + \
            '</td>' +
            // ...                                                                                                                                                                                                                                               
            '</tr>';                                                                                                                                                                                                                                                                   
    }                                                                                                                                                                                                                                                                                      
    return rows;                                                                                                                                                                                                                                                                           
}    

问题:我想捕获 deleteAction 命名的 input 元素上的 mouseover 事件。

我有以下 jQuery 脚本:

$(document).ready(function() {
    inputDataElementsRowDeleteActions = $("#inputDataElements input:[name=deleteAction]");
    ...
    inputDataElementsRowDeleteActions.mouseover(function(event) {
        alert(event);
    });
});

问题:当我将鼠标悬停在 input 元素上时,我没有收到 alert 消息。

当动态添加元素时,有没有办法用 jQuery 捕获 mouseover 事件?

最佳答案

最简单的方法是使用.live()

inputDataElementsRowActions.live('mouseover', function(event) {
    alert(event);
});

或者您可以使用类似的.delegate()(在这种情况下可能是首选)。

$("#inputDataElements").delegate('input[name=rowAction]', 'mouseover', function(event) {
    alert(event);
});

它们都通过捕获冒泡的事件来工作。在本例中,.live() 在根处捕获它,而 .delegate()#inputDataElements 处捕获它。

否则,您必须在创建元素时(或之后)绑定(bind)事件。

关于javascript - 如何使用 jQuery 捕获动态添加的输入 HTML 元素上的鼠标悬停事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3376153/

相关文章:

c# - 如何在 C# 中以最快的方式检索 HTMLDocument 的所有文本节点?

javascript - React - 如何在组件内打印输入 onChange 的值

javascript - 如何在 alfresco javascript 中比较两个noderef

javascript - 使用 CSS 控制额定填充率

javascript - 动态使用 iframe 作为页面覆盖

javascript - 在 jQuery 中使用 'DOMNodeInserted' 包装 select 元素时出现问题

javascript - JavaScript 中 childNode 的 ChildNode 的树

javascript - 使用 React 内联样式设置第三方元素的样式

javascript - ampersand.js 多 View 切换器

javascript - jQuery onclick 传递发布变量并重新加载页面