通过ajax代码之外的php返回的链接标识类名

时间:2013-08-25 12:35:50

标签: jquery hyperlink

下面是我的ajax代码。我在下面的代码中写了我的问题作为评论:

//Make the Ajax Request
$.ajax({
    type: "POST",
    url: "dbtryout2_2.php",
    data: datastr,
    success: function(arrayphp) {
         //the problem is with this album class.
         //Its not getting identified outside ajax code
         var link = $('<a href="#" class="album"><font color="red">' + arrayphp + '</font></a>');
        linkclass = link.attr("class"); 
        $(".searchby .searchlist").append(link);   
    }
});
}); 

  //On clicking element of "linkclass" The code below is not working

    $(".searchby .searchlist '.'+linkclass").on("click", function() {
 alert("iam here");
 });

 //while this code is working when i have included directly a span 
 //element "clickme" inside "searchlist division" and have given class name    "democlass" to it
 //On clicking the democlass element alert function is gettting called

     //i want alert function to be called for above code also
 $(".searchby .searchlist .democlass").on("click", function() {
 alert("iam here");
});

我希望运行ajax代码后的代码

2 个答案:

答案 0 :(得分:2)

您需要使用事件委派,您需要在此使用固定的类名

$('.searchby .searchlist').on('click', '.album', function() {
    alert("iam here");
});

如果类album未修复,则另一个解决方案是在创建元素后绑定事件处理程序

$.ajax({
    type: "POST",
    url: "dbtryout2_2.php",
    data: datastr,
    success: function(arrayphp) {
        var link = $('<a href="#" class="album"><font color="red">' + arrayphp + '</font></a>');
        link.click(albumClickHandler)
        $(".searchby .searchlist").append(link);   
    }
});

function albumClickHandler() {
    alert("iam here");
}

答案 1 :(得分:0)

你需要在ajax回调中绑定你的click处理程序,如下所示:

$.ajax({
    type: "POST",
    url: "dbtryout2_2.php",
    data: datastr,
    success: function(arrayphp) {
        //the problem is with this album class.
        //Its not getting identified outside ajax code
        var link = $('<a href="#" class="album"><font color="red">' + arrayphp + '</font></a>');
        linkclass = link.attr("class"); 
        $(".searchby .searchlist").append(link);   

        $(".searchby .searchlist '.'+linkclass").on("click", function() {
            alert("iam here");
        });
    }
});
}); 

这样,在将链接添加到DOM后,就会立即绑定click事件。