开发者社区> 问答> 正文

如何控制Javascript( jquery)的触发时间?

我的页面上有一列button按钮, 点击其中的一个后, 浏览器跳到新页面, 然后会给这个被点击的button添加active属性.并且其他的button去掉active属性.

我的做法是:

 $("#my_button a").click(function(e){
        $('a.active').removeClass('active');   // 去掉active属性 
        $(e.target).addClass('active');        // 被点击的button添加active属性
  });

问题来了, 上面的删除和添加样式都成功了, 但是由于点击后页面跳转了, 不知道为什么, 所有的样式都恢复默认了(即没点击之前)..

是因为页面跳转的原因吗, 如果是, 那么能够在页面跳转后再执行JS吗?

或者, 是我的做法有问题?

谢谢.

展开
收起
小旋风柴进 2016-03-24 13:24:14 1814 0
1 条回答
写回答
取消 提交回答
  • 其实你只要按照后端语言的想法给传参就好了...

    var Buttons = document.querySelectorAll('#my_button a'),
        ActiveButton = location.hash.substr(2) || '';
    
    if(ActiveButton) {Buttons[ActiveButton].classList.additem('active')}
    
    for(var i=0, l=Buttons.length; i<l; i++) {
        (function(number) {
            Buttons[number].onclick = function(e) {
                e.preventDefault();
                location.href = this.href+'#!'+number
            }
        })(i);
    }
    2019-07-17 19:12:39
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
JavaScript面向对象的程序设计 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载