Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在ajax回调中创建链接_Javascript_Php_Ajax - Fatal编程技术网

Javascript 在ajax回调中创建链接

Javascript 在ajax回调中创建链接,javascript,php,ajax,Javascript,Php,Ajax,我在ajax回调函数中创建了一个链接,并为此定义了一个类,我在点击该链接时编写的命令不起作用。代码如下: $('.catpics').click(function(){ var id=$(this).attr('id'); $.post('storehouse.php', { catid:id, btn:'showsub' },function(data){ $('#subcatshelf').append('<a class="catpic

我在ajax回调函数中创建了一个链接,并为此定义了一个类,我在点击该链接时编写的命令不起作用。代码如下:

$('.catpics').click(function(){
   var id=$(this).attr('id');
   $.post('storehouse.php', {
     catid:id,
     btn:'showsub'
   },function(data){
     $('#subcatshelf').append('<a class="catpics" id="'+ data+'">'+data+'</a>');
   });
$('.catpics')。单击(函数(){
var id=$(this.attr('id');
$.post('storage.php'{
catid:id,
btn:‘showsub’
},函数(数据){
$('#subcatshelf')。追加(''+数据+'');
});
$('.catpics')。单击(function(){
仅绑定到链接一次。您正在查找
上的
,它将绑定到您给它的第一个对象(这样您就可以给它网页的
正文
)然后告诉它收听
.catpics
上的点击,由于侦听器位于
主体上,而不是单个
.catpics
元素上,因此实际插入或删除链接的时间无关紧要:

$('body').on('click', '.catpics', function() {
   var id=$(this).attr('id');
   $.post('storehouse.php', {catid:id,btn:'showsub'},function(data){
     $('#subcatshelf').append('<a class="catpics" id="'+ data+'">'+data+'</a>');
   });
});
$('body')。在('click','catpics',function()上{
var id=$(this.attr('id');
$.post('storage.php',{catid:id,btn:'showsub'},函数(数据){
$('#subcatshelf')。追加(''+数据+'');
});
});
或者,您可以通过拉出事件处理程序,并在插入新链接时设置新的单击侦听器,使单击正常工作:

function clickedCatPic() {
   var id=$(this).attr('id');
   $.post('storehouse.php', {catid:id,btn:'showsub'},function(data){
     var link = $('<a class="catpics" id="'+ data+'">'+data+'</a>');
     $('#subcatshelf').append(link);
     link.click(clickedCatPic);
   });
}

$('.catpics').click(clickedCatPic);
函数clickedCatPic(){
var id=$(this.attr('id');
$.post('storage.php',{catid:id,btn:'showsub'},函数(数据){
变量链接=$(''+数据+'');
$('#subcatshelf')。附加(链接);
链接。单击(单击CATPIC);
});
}
$('.catpics')。单击(clickedCatPic);

它不起作用,可能是因为您的
标记中没有包含
href=url
,所以您只是得到一些带下划线的文本而不是链接,对我来说很重要的是,onclick函数也适用于我的链接,我用href测试它,但不起作用。副本将解释如何添加事件。Basicall您可以绑定到包含链接的父元素,只需响应所有单击,如
$(“.catpiccontainer”)。在('click','.catpics',function(){…})上;
非常感谢它的工作