下面是我的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代码后的代码
答案 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事件。