2014-10-27 50 views
0

我有以下的layout.jade代码,我想对javascript进行一些更改,以便每次页面重新加载时都可以将一些图像加载到页面。我想用玉做这个。这里是我目前的代码:在jade中使用JavaScript添加图像

html 
    head 
    title= title 
    script(src='/libs/jquery/jquery.min.js') 
    link(rel='stylesheet', href='/libs/bootstrap/css/bootstrap.min.css') 
    link(rel='stylesheet', href='/stylesheets/style.css') 

    body 
     script(type='text/javascript'). 
     if (document.cookie.indexOf('mycookie')==-1) { 
     document.cookie = 'mycookie=1'; 
     } 
     else { 
     alert('You refreshed!'); 
     } 
    block content 

它工作正常,刷新并给我警报。 我有10个图像,我想要将它们添加到循环中的页面,以便每次页面刷新时下一张图像被加载,然后在最后一张图像被加载到第一张图像之后。 我可以尝试使用for循环代替警告消息来加载图像,但是当我尝试在else语句中使用标准方式的玉来添加图像时,没有图像显示。

我已经尝试创建reload.js页面,然后在应用程序中调用它等。

谁能帮助我如何我可以从图像文件夹通过更改此获得的图像像

img(border="0" src="images/3.jpg") 

。我想看看页面是否重新加载,然后加载不同的图像。

谢谢

+0

你想用逻辑或代码帮助吗? – laggingreflex 2014-10-27 06:06:15

+0

如果可能,最有可能的代码和逻辑。 – user1832681 2014-10-27 22:16:41

回答

1

可能有很多方法可以做到这一点。这里有一个:你可以在服务器端使用sessions(IMO最好使用客户端JS中的cookie)来创建一个变量来保存你想要的图像(基于变量),并将它传递给jade用该图像编译HTML。

事情是这样的:

服务器

app.get('/', function(req, res){ 
    // incrementation logic 
    if(!req.session.myimage) 
     req.session.myimage = 0; 
    req.session.myimage++; 
    if(req.session.myimage > 10) 
     req.session.myimage = 1; 

    // pass it onto Jade 
    res.locals.myimage = req.session.myimage; 

    res.render('index'); 
}); 

img(border="0" src="images/#{myimage}.jpg")