js第一次触发无效问题

JavaScript012

js第一次触发无效问题,第1张

<input type="button" onclick="abc()">

<scrpit>

  

  function  abc(){

     alert(111)

  }

</script>

这样写看行不行

引用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=0i<strArray.lengthi++){

                $("#"+strArray[i]).addClass('act')//给点击过的li添加上样式

            }

        }

})

你可以用一个hidden来保存是否第一次加载的值

<input type= "hidden " id= "hid1 " runat= "server " value= "0 " />

function test()

{

var hid1 = document.getElementById( "hid1 ")

if(hid1.value == "0 ")

{

//如果是第一次加载,则操作

window.onload=functionName

function window.onload(){

functionName()

}

window.onload=function(){

functionName()

}

}

else

{

//否则不操作

}

}

<body onload= "test()">

后台的Page_Load事件

if(Page.IsPostBack)

{

hid1.Value = "1 " //如果是重新加载则将hidden的值变成1

}