簡體   English   中英

為什么我的find('a')在jquery中不起作用?

[英]Why my find('a') doesn't work in jquery?

我在jquery中有一個函數:

function handleUpcomingUserTexts(){

$.ajax({
    url: 'getjson.php', 
    type: "POST",
    data: {
        mail: '<?php echo htmlentities($_SESSION["email"]); ?>'
    },
    dataType:'text',
    success: function(ans)
    {
        var data = JSON.parse(ans);

        $.each(data, function(i, v) {

            var upcomingText = $('<a href="#" class="list-group-item"><i class="fa fa-comment fa-fw"></i> '+v.Content+'<span class="pull-right text-muted small"><em>'+v.Date+'</em></span></a>');


            $('#upcomingTexts').append(upcomingText);


            var a = upcomingText.find('a').on('click',function(e){

                e.preventDefault();
                alert("here");


            });

            });     

}});

};

它很好地填充了html,但當我點擊鏈接時 - 沒有任何反應,我沒有看到警報消息。 這里有什么問題?

因為upcomingText已經是a 而你正在努力尋找一個a在你的a

你可以這樣寫:

var a = upcomingText.on('click',function(e){

當你寫var variable = $('<a ...>...</a>'); ,結果是給定html的根標簽。 所以在你的情況下, <a>

因為upcomingText<a>並且在此標記中沒有任何<a>標記,所以你需要像這樣使用upcomingText

upcomingText.on('click',function(e) {});

但在這種情況下event delegation更好的解決方案

// add this code before $.ajax
$('#upcomingTexts').on('click', 'a.list-group-item', function(e) {});

嘗試在#upcomingTexts塊上使用delegate函數

$('#upcomingTexts').delegate('a', 'click', function(e){
    //your code here
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM