【问题标题】:How to get the image by ID from image Slider and store it to the cookies?如何从图像滑块中通过 ID 获取图像并将其存储到 cookie 中?
【发布时间】:2015-06-20 03:40:11
【问题描述】:

我在 asp.net MVC 应用程序的主页中有一个包含 5 张图片的图像滑块。现在,当用户单击应用程序中的其他菜单选项卡时,图像滑块的最后一次看到的图像应该存储在 cookie 中。所以当用户回到主页时,图像滑块将从最后看到的图像开始。我的chtml:

 <div id="sliderFrame">
    <div id="slider"> 
    <a id="image1" href='#' class='linkdisabled'>
    <img src="~/content/Internal/Images/image1.jpg" alt="" />
    </a>
    <a id="image2" href='#' class='linkdisabled'>
    <img src="~/content/Internal/Images/image2.jpg" alt="" />
    </a>
.....

我正在考虑通过 cookie 中的 ID 覆盖图像,当用户返回主页时,cookie 中最后存储的图像将显示在图像幻灯片中。 但是如何获取图像 id 并将其存储到 cookie 中?请帮忙。

【问题讨论】:

    标签: javascript asp.net-mvc-4 cookies jquery-cookie


    【解决方案1】:

    首先,获取链接的容器以及该容器内的链接集合

    var slider = document.getElementById("slider");
    var links = slider.getElementsByTagName("a");
    

    接下来,初始化一个设置cookie的方法

    function setCookie(){
        document.cookie="lastSeenImageId=" + this.id;
    }
    

    为每个链接添加事件侦听器。注意:在这个例子中,我不考虑对 Internet Explorer

    for(var i=0; i<links.length; i++){
    
        links[i].addEventListener("click", setCookie, false);
    
        /*(function(j){
            links[j].attachEvent("onclick", function(){
                setCookie.call(links[j]);
            });
        })(i);*/
    
    }
    

    最后,在页面加载时触发点击事件

    function fireAnEvent(){
    
        var cookie = document.cookie;
    
        if(cookie && document.cookie.test(/lastSeenImageId=([^;]+)/)){
            var link = document.getElementById(RegExp.$1);
            link.click();    
        }
    
    }
    
    window.addEventListener("load", fireAnEvent, false);
    // window.attachEvent("load", fireAnEvent);
    

    此代码只是一个示例,可能需要根据您的需要进行一些更正。

    【讨论】:

    • 谢谢。我有 .js 文件:'var sliderOptions= { sliderId: "slider", startSlide:0, effect: "series1", effectRandom: false, pauseTime: 2600, transitionTime: 0 slices: 12、boxes: 8, hoverPause:1, autoAdvance: true, captionOpacity: 0.3, captionEffect: "fade", thumbnailsWrapperID: "thumbs", m: false, license: "mylicense", }; var imageSlider= new ImageSlider(sliderOptions); function ImageSlider(k){for(var T=function(a){return document.getElementId(a)},d="length" ab="getElmentByTagName"....' 所以我应该在 .js 中添加所有这些 functuin文件?
    • 不,这是一个独立的代码,必须在 DOM 准备好时启动。我认为不经测试就使用此代码不是一个好主意,您能否给我您的网站地址以便我可以帮助您?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-22
    • 1970-01-01
    • 2017-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多