Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.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/2/joomla/2.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响应需要分配给div_Javascript_Php_Jquery_Html_Ajax - Fatal编程技术网

Javascript ajax响应需要分配给div

Javascript ajax响应需要分配给div,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,我正在使用Ajax调用实现一个图像库 调用传递一个值并获取一个HTML代码作为响应。我检查了这个回答,它是正确的 如果我把这段代码放到一个静态DIV中,那么这个库就可以正常工作 但是如果我用AJAX注入代码,当我点击一个图像时,它会在窗口中作为普通图像打开:画廊弹出窗口不工作 这个问题的原因可能是什么 代码如下 $.ajax({ 键入:“GET”, 网址:“www.test.com”, 数据:{ 类型:产品,, 使用:'gallery' }, 数据类型:“html”, 成功:功能(数据){ $

我正在使用Ajax调用实现一个图像库

调用传递一个值并获取一个HTML代码作为响应。我检查了这个回答,它是正确的

如果我把这段代码放到一个静态DIV中,那么这个库就可以正常工作

但是如果我用AJAX注入代码,当我点击一个图像时,它会在窗口中作为普通图像打开:画廊弹出窗口不工作

这个问题的原因可能是什么

代码如下

$.ajax({
键入:“GET”,
网址:“www.test.com”,
数据:{
类型:产品,,
使用:'gallery'
},
数据类型:“html”,
成功:功能(数据){
$(“#dv#u画廊”)。附加(数据);
}
});除非库(您没有指定)完全基于CSS,否则您几乎肯定需要调用某种初始化代码

通常情况下,这由库代码在加载时处理:

// This "animates" all gallery DIVs **THAT EXIST NOW**
<script src="gallery.js"></script>
基于的自定义库的示例。单击() 在这种情况下,您只需要通过委托拦截(比如)A标记上的点击。在这个假设中,你现在做的是

$('#dv_gallery a').on('click', function(event) {
   ...
});
这适用于静态存在的A。要使其与动态添加的标记一起工作,您应该

$('#dv_gallery').on('click', 'a', function(event) {
   ...
});
请注意,现在您将click事件绑定到存在的#dv_gallery,并通过向.on()提供一个额外参数来告诉它充当新添加的“a”标记的委托

FancyBox的示例: 如果API足够智能,不会重新添加已经丰富的元素,那么您不需要添加信号量类,只需简单地添加即可

$("#dv_gallery").append(data);
$("#dv_gallery").gallery();
或者,如果不是,但您知道它添加了一个给定的类,您可以直接使用该类作为信号量:

    $("#dv_gallery")
        .not(".gallery-class")
        .gallery();
诊断返回的HTML中不太明显的问题 jQuery应该正确地附加HTML;如果没有,请检查返回文档的内容类型,然后尝试

   $("#dv_gallery").append($(data));
或者尝试替换库中的所有内容:

   $("#dv_gallery").html(data);

在这两种情况下,您都需要重新调用所需的库初始化代码。然而,最后两个选项只是诊断性的——如果它们起作用,它会告诉您返回的对象中有可疑的东西。

您是否尝试过使用jquery的html()函数

$("#dv_gallery").html(data);
$(“#dv_画廊”).html(数据)

上面的代码适用于您

问题是,尽管您的代码没有显示
单击
代码,但它不会被识别,因为它是在事后加载的。与库代码无关

简单地说,尝试更改您的点击代码,例如

$('.myClass').on( 'click', function(){ ... } )


这将通过正文传递单击,然后应触发您的库代码。

数据:{type:product,use:'gallery'}。。。产品是变量名还是字符串。。。i、 e.数据:{type:'product',use:'gallery'},product是一个包含字符串的变量。您使用的是哪种服务器端语言?您的gallery div在部分内部?在弹出窗口中添加打开
图像的代码,并且
追加
有什么问题?
html
将替换以前的所有内容,
append
将添加它是的,我已经尝试过了。但还是有同样的问题。甚至我也尝试过document.getElementById(“dv_gallery”).innerHtmlI如果在ajax响应之后您将在数据中获取数据,那么您将使用jquery使用div id将html放入using html函数中。我以前使用过这个函数,但它对我不起作用。我得到的图像显示在那里。但是gallery函数在那里不起作用。请将您的html代码发送给我,我将为您提供解决方案
$("#dv_gallery").html(data);
$('.myClass').on( 'click', function(){ ... } )
$('body').on( 'click', '.myClass',  function(){ ... } )