0

After creating a batch of Html nodes, The link does not work!

How can I fix it?

Javascript Codes:

   var nnn = '<div class="media mt-3 w-100" id="commentNode_0000">' +
                    '<a class="pr-0" href = "#" >' +
                    '<img class="mr-3" src="/images/comment1.png" alt="x">' +
                    '</a>' +
                    '<div class="media-body w-100">' +
                    '<h5 class="mt-0 mb-1">User</h5>' +
                    '<div id="collapse_0000" class="">' +
                    '<div id="cardId_0000" class="card">' +
                    '<p>TEST TEST</p>' +
                    '</div>' +
                    '<div class="comment-meta" id="commentId_0000">' +
                    '<span><input id="deleteC_24_20" type="submit" class="submitLink" value="delete"></span>' +
                    '<span><input id="editC_24_20" type="submit" class="submitLink" value="edit"></span>' +
                    '<span>' +
                    '<a id="replyC_24_20" class="" role="button" data-toggle="collapse" href="#replyComment_0000" aria-expanded="false" aria-controls="collapseExample">reply</a>' +
                    '</span>' +
                    '<div id="replyComment_0000" class="collapse"></div>' +
                    '</div>' +
                    '</div>' +
                    '</div>' +
                    '</div>';
                $(collapseId).append(nnn);

Exactly this line of code:

'<a id="replyC_24_20" class="" role="button" data-toggle="collapse" href="#replyComment_0000" aria-expanded="false" aria-controls="collapseExample">reply</a>' 

I expect this event to fire after clicking the tag that I have created dynamically. But it doesn't work!

$("a[id^='replyC_']").on("click", function (event) {
    var nodeId = event.target.id;
});
x19
  • 8,277
  • 15
  • 68
  • 126

1 Answers1

0

var collapseId = document.getElementById('collapseId')
var nnn = '<div class="media mt-3 w-100" id="commentNode_0000">' +
    '<a class="pr-0" href = "#" >' +
    '<img class="mr-3" src="/images/comment1.png" alt="x">' +
    '</a>' +
    '<div class="media-body w-100">' +
    '<h5 class="mt-0 mb-1">User</h5>' +
    '<div id="collapse_0000" class="">' +
    '<div id="cardId_0000" class="card">' +
    '<p>TEST TEST</p>' +
    '</div>' +
    '<div class="comment-meta" id="commentId_0000">' +
    '<span><input id="deleteC_24_20" type="submit" class="submitLink" value="delete"></span>' +
    '<span><input id="editC_24_20" type="submit" class="submitLink" value="edit"></span>' +
    '<span>' +
    '<a id="replyC_24_20" class="" role="button" data-toggle="collapse" href="#replyComment_0000" aria-expanded="false" aria-controls="collapseExample">reply</a>' +
    '</span>' +
    '<div id="replyComment_0000" class="collapse"></div>' +
    '</div>' +
    '</div>' +
    '</div>' +
    '</div>';
$(collapseId).append(nnn);

$("a[id^='replyC_']").on("click", function (event) {
    var nodeId = event.target.id;
    console.log(nodeId);
    
});
<div id="collapseId"></div>

<script src="https://code.jquery.com/jquery-3.4.1.min.js"
    integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>

it works fine :)

Nadim Al Abdou
  • 768
  • 7
  • 13