0

我有一个漫画网站,它遍历数据库中的所有图像并将它们显示为缩略图。用户可以单击其中一张图像,在 viewcomic.php 模板上以正常大小查看它。

我想让用户按左右箭头来导航图像。

在 viewcomic.php 中,我有以下 javascript,它仅在我注释掉任何 php 时运行。

     //so if I comment out this line, it will run fine 
var imgArray = [<?php echo implode(',', getImages()) ?>];

$(document).ready(function() {
    var img = document.getElementById("theImage");
    alert("run");
    var imgIndex = 0;
    $(document).keydown(function (e) {
        if (e.which == 39) {
            alert("next image");
            img.src = imgArray[imgIndex++]
        }

    });
}); 

在萤火虫中,我收到以下错误:

invalid regular expression flag a
[Break On This Error]   

参考:

 var imgArray = [/images/all_comics/'Number_1.jpg',/images/all_comics/'Number_2.j...

但是,Firebug 显示 imgArray 似乎正确地填充了 jscript 可读的字符串:

 var imgArray = [/images/all_comics/'Number_1.jpg',/images/all_comics/'Number_2.jpg',/images/all_comics/'Number_3.jpg',/images/all_comics/'Number_4.jpg',/images/all_comics/'Number_5.jpg'];

任何想法,将不胜感激!

谢谢!

4

4 回答 4

1

正如 Firebug 错误所述,由于您的数组值引用不完整,它会将它们解析为错误的正则表达式,因为斜杠是正则表达式分隔符。

代替

/images/all_comics/'Number_1.jpg'

您需要将整个值引用为

'/images/all_comics/Number_1.jpg'

于 2012-10-12T19:16:24.367 回答
1

您需要在字符串中添加引号,例如:

var imgArray = ['<?php echo implode("','", getImages()) ?>'];

另一种可能性是使用json:

var imgArray = <?php echo json_encode(getImages())?>;
于 2012-10-12T19:05:31.873 回答
1

改变

var imgArray = [<?php echo implode(',', getImages()) ?>];

var imgArray = ["<?php echo implode('","', getImages()) ?>"];
于 2012-10-12T19:05:39.987 回答
1

getImages()函数似乎尝试引用字符串,但它仅引用文件名,而不是完整路径:

/images/all_comics/'Number_1.jpg'

对比

'/images/all_comics/Number_1.jpg'

这会导致[]声明中的语法不正确。

于 2012-10-12T19:06:06.237 回答