Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.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
Php 基础模型中的jQuery图像滑块5不工作的W /动态数据_Php_Jquery - Fatal编程技术网

Php 基础模型中的jQuery图像滑块5不工作的W /动态数据

Php 基础模型中的jQuery图像滑块5不工作的W /动态数据,php,jquery,Php,Jquery,我正在建立一个汽车和汽车零件网站。这些汽车以样式框显示在页面上,带有一张照片和简要说明,所有数据都来自数据库。有一个按钮可以在一个下拉列表中显示所有相应的汽车照片,该下拉列表显示一个 它可以很好地进行硬编码,但是每当数据来自对数据库的调用时,图像滑块图像不会显示在模式中。奇怪的是,如果您将PHP脚本生成的html复制并粘贴到页面中,它工作得非常好,图像从db加载到滑块中。我从Firefox的开发者工具栏复制了生成的HTML,否则它不会显示在常规的“查看源代码”中。这就是问题所在吗 简单地说,我使

我正在建立一个汽车和汽车零件网站。这些汽车以样式框显示在页面上,带有一张照片和简要说明,所有数据都来自数据库。有一个按钮可以在一个下拉列表中显示所有相应的汽车照片,该下拉列表显示一个

它可以很好地进行硬编码,但是每当数据来自对数据库的调用时,图像滑块图像不会显示在模式中。奇怪的是,如果您将PHP脚本生成的html复制并粘贴到页面中,它工作得非常好,图像从db加载到滑块中。我从Firefox的开发者工具栏复制了生成的HTML,否则它不会显示在常规的“查看源代码”中。这就是问题所在吗

简单地说,我使用body标记中的onload事件调用AJAX/PHP,从DB获取数据,并在框中显示所有汽车,包括传递给modal的所有属性值:

...data-reveal-id="sliderModal" data-my-name="67camaro/Camaro">
我使用一些jQuery循环遍历图像文件夹URL,并在img的基本名称末尾附加一个数字和“.jpg”,然后将其推入滑块的img src中:

jq("#image0" + i).attr("src", newText) ;
我甚至在上面的代码中使用了$.noConflict,以确保它与JSSOR的jQuery滑块不冲突,但没有效果


我已经搜索并阅读了所有内容,但我没有找到其他有同样问题的人。我还是个新手,在这个问题上我已经达到了极限。很明显,有大量的代码与滑块一起超出了限制

看起来您使用了直接事件而不是委派事件

直接事件将仅分配给文档对象中已经存在的元素,其中委派事件将适用于旧元素以及任何新添加的元素

jq('[data-reveal-id]').on('click', function() { // In this line you are registering direct event handlers
        var targetModal = jq('#' + jq(this).data('revealId'));
        for (var i = 0; i < 10; i++){
            var newText = 'img\/' + jq(this).data('myName') + '0' + i + '.jpg';
                jq("#image0" + i).attr("src", newText) ;
                jq("#thumb0" + i).attr("src", newText) ;              
        }
        for (var i = 9; i < 16; i++){
            var newText = 'img\/' + jq(this).data('myName')  + i + '.jpg';
                jq("#image" + i).attr("src", newText) ;
                jq("#thumb" + i).attr("src", newText);              
        }         
    });

您可以将文档更改为[数据显示id]父元素的任何元素

我发现的另一个错误是,新添加元素的数据名中的url是错误的

预期url为68convertible/convert,您传递的url为/img/68convertible/convert


要了解有关委托事件和函数的更多信息,请参见

var jq=$.noConflict;你能在JSFIDLE中重现这个错误吗?问题是:我把php代码放在CSS框中,只包含了相关的HTML。同样,php脚本生成的html可以正常工作,如果您复制并粘贴它,并且所有图像都加载到滑块中。不确定如何在JSFIDLE中重现错误,因为这完全取决于服务器脚本和图像。这里有一个链接:前两辆车是硬编码的,模式中的滑块库可以正常工作。下面两个是由PHP/AJAX生成的,尽管它生成的html代码与前两个硬编码代码相同,但模式没有图像。PS如果在底部PHP/AJAX生成的图像之前单击前两个,前面的图像仍将处于内存模式中…不要被这一点愚弄。非常感谢您的响应。“数据我的名称”的值由数据库和PHP生成,是图像的文件夹和基图像名称。jquery代码附加图像url的img/部分,然后是图像编号加图像格式01.jpg,并将其推送到…这是正确的url,不是吗?img u=image id=image01 src=img/68convertible/convert01.jpg。我会尽快尝试,不幸的是,我在将php文件上传到服务器时遇到问题,当他们修复它时,我发现我所有的php脚本都是空的。非常生气。是的,正确。您的jquery代码将附加img/但您的数据“我的名字”属性已具有img/68converable/convert。所以,若你们现在添加,url将变成img/img/68convertible/convert。我在发布之前忘了删除它…已经修复了它,但它并没有修复这个问题。现在写为:var newText=jqthis.data'myName'+i+'.jpg';仍然不够奇怪“无冲突”与我的表单提交代码冲突,我必须摆脱它并返回到“$”,否则确认模式不会弹出。请尝试使用jQuery而不是$
jq('[data-reveal-id]').on('click', function() {
jq(document).on('click','[data-reveal-id]', function() {