问题操纵附加的html元素

时间:2016-01-12 17:31:00

标签: javascript jquery html dom

我看到了一些类似的问题,但仍然无法得到它。

let buffer = UnsafeMutablePointer<Int>.alloc(count)
for i in 0..<count {
    buffer[i] = Int(arc4random())
}

这是preprend html的AJAX请求。在一个单独的文件中,我使用JS上下文菜单。但是,用户从上下文菜单中点击它不会影响前面的html。如何操作新的html元素?我已经阅读了有关$(function () { var csrf = $('input[name=_token]').val(); $.ajax({ async: false, url: "../public/currentfile", dataType: 'json', method:'POST', data: {"_token": csrf}, complete: function(data) { console.log(data.responseJSON); var created_at = data.responseJSON['created_at']; var filesize = data.responseJSON['filesize']; var filename = data.responseJSON['filename']; var fileid = data.responseJSON['fileid']; $("#results .toBeSelected").prepend("<tr class='tabledata newdata'><td>" + fileid + "</td><td>" + filename + "</td><td>" + filesize + "</td><td>" + created_at + "</td></tr>"); } }); }); 的内容。

输出HTML是一个表格行。当用户右键单击新添加的表行时,此AJAX应该执行:

.on()

2 个答案:

答案 0 :(得分:0)

您可以使用所需的所有属性和属性创建一个DOM对象,而不是字符串,然后追加/添加它们:

var domObj = $('<tr/>')
                 .addClass('tabledata newdata')
                 .append('<td>" + fileid + "</td><td>" + filename + "</td><td>" + filesize + "</td><td>" + created_at + "</td>')
                 .on('click', function() { /* do something */ });
$("#results .toBeSelected").prepend(domObj);

答案 1 :(得分:0)

enter image description here 称为事件委派。

  

描述:将一个或多个事件的事件处理函数附加到所选元素。

如果你想将click事件附加到javascript添加的新元素,那么你应该处理新的DOM,你应该使用事件委托。

下面的示例将点击事件附加到类$( "body" ).on( "click", ".tabledata", function() { //Your code here }); 的新行:

{{1}}

希望这有帮助。