js第一次点击执行,刷新后就不执行了

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js第一次点击执行,刷新后就不执行了相关的知识,希望对你有一定的参考价值。

代码如下:
<ul class="multiselect">
<li class="invsible checkbox" ><a title="5W-30" href="/plus/list.php?tid=7&jiyoubiaohao=5W-30">5W-30</a></li>
<li class="invsible checkbox" ><a title="10W-40" href="/plus/list.php?tid=7&jiyoubiaohao=10W-40">10W-40</a></li>
</ul>

js部分:
<script>
$(function()
$("li").click(function()
$(this).addClass('act');
);
);
</script>

这个代码是在点击一个链接后在原有样式上加个class="act"样式。点击的时候可以执行JS,但我的页面是点击后存在刷新的,执行后一刷新就生效了。百度了一下说是要用到cookie,求大神帮我写一个。

引用jQuery的cookie库jquery.cookie.js

<!--这里html的li要区分,这样便于添加完样式,刷新后再把样式还原,所以取了一个特别的值,也可以换成自己的-->
<!--如果是动态生成的更好,赋值动态的id-->
<ul class="multiselect">
<li class="invsible checkbox" id="5W-30"><a title="5W-30" href="/plus/list.php?tid=7&jiyoubiaohao=5W-30">5W-30</a></li>
<li class="invsible checkbox" id="10W-40"><a title="10W-40" href="/plus/list.php?tid=7&jiyoubiaohao=10W-40">10W-40</a></li>
</ul>

$(function()
    $("li").click(function() 
    //绑定点击事件,每次点击要把
        $(this).addClass('act'); 
        var id=$(this).attr('id');
        //每次添加完样式要把添加的li的id记录到cookie
        var addedLI=$.cookie('addedLI');//获取已添加到cookie的值
        if(addedLI==null||addedLI==""||addedLI==undefined)
            //首次点击li,只将当前li的id加入cookie
            $.cookie('addedLI',id);
        else
            //已添加过id
            addedLI+=','+id;//将已加入的id和当前的id连接成字符串,逗号分隔
            //更新cookie
            $.cookie('addedLI',addedLI);
        
    );
    
    //页面加载完,获取存入cookie的id,分别给li加上class
    var addedLI=$.cookie('addedLI');//获取已添加到cookie的值
        if(addedLI!=null||addedLI!=""||addedLI!=undefined)
            //将加入的值以逗号分割成数据,然后循环遍历
            var strArray=addedLI.split(',');
            for(var i=0;i<strArray.length;i++)
                $("#"+strArray[i]).addClass('act');//给点击过的li添加上样式
            
        
);

追问

你好,我的是动态生成的,请问怎么赋值动态ID

里面的ID="5W-30",这个5W-30我是直接调用数据库里面的一个字段的值。

能否帮我看看怎么解决。

参考技术A 描述不清晰,一般样式不加载链接上。追问

不是在链接上加样式,而是点击后加在原有的样式上,即为

jquery让一个点击事件刷新页面就自己执行一次的方法


$(‘name‘)这个元素之前已经绑定过事件啦,(on绑定)
然后直接调用下即可:
  $(‘name‘).click();

以上是关于js第一次点击执行,刷新后就不执行了的主要内容,如果未能解决你的问题,请参考以下文章

如何让js在页面加载后只执行一次,也就是再次刷新当前页,不再执行js

transform在js中如何多次执行

如何解决js中点击了按钮一次,再按回车也会触发按钮的事件的bug

如何让html页面实现每次刷新的时候重新执行js

jquery让一个点击事件刷新页面就自己执行一次的方法

js 为啥有时加载有时不加载