【问题标题】:HTML5 sessionStorage : variable not stored on <li> onclick attributeHTML5 sessionStorage:变量未存储在 <li> onclick 属性中
【发布时间】:2016-01-13 18:25:02
【问题描述】:

我想知道为什么这个 onclick 会在这个 div 上起作用:

<div id="block-block-contact" class="block-factice expanded" onclick="sessionStorage.contactclass=this.className ">

但不是在这个里

 <li id="dhtml_menu-1895" class="first collapsed dhtml-menu collapsed start-collapsed menu-1895" onclick="sessionStorage.menu1895=this.className">

意思是当我点击 div 时,它会存储 contactclass 变量,而当我点击 li 时,它不会存储 menu1895 变量

【问题讨论】:

    标签: javascript html onclick session-storage


    【解决方案1】:

    马托伊尔,

    你能检查一下吗 https://jsfiddle.net/612ee2df/

     <ul>
      <li id="dhtml_menu-1895" class="first collapsed dhtml-menu collapsed    start-collapsed menu-1895" onclick="sessionStorage.menu1895=this.className">
       Test
      </li>
    </ul>
    

    jQuery

    $(document).ready(function(e)
    {
      $('ul li').on('click',function(e)
      {
          var cls = $(this).attr('class');
          alert(cls);
          sessionStorage.menu1895 = cls;
      })
     })
    

    因为我尝试了您的代码-sn-p,但我使用了 jQuery 而不是 JavaScript,它将值保存在会话存储中。

    【讨论】:

    • 谢谢,如果不适用于我的。是不是已经在那个 li 上有一个默认的 onclick 动作?我如何检查这一点以及如何更改重量,以便我的动作在另一个动作之前?
    • 在 JavaScript 中不确定,但在 jQuery 中有方法 unbind.. 调用 unbind() 然后关联您的 click(),不是 100% 确定它适合您,但您可以尝试
    • 你是动态添加这个li吗??
    • 有一个原型 onclick 事件。我不知道如何让这两个动作一起工作
    【解决方案2】:

    另一个事件与此元素相关联。 剥离我所做的所有事件侦听器

    var old_element=document.getElementById("dhtml_menu-1895");     
    var new_element = old_element.cloneNode(true);
    old_element.parentNode.replaceChild(new_element, old_element);  
    

    现在可以了

    【讨论】:

      猜你喜欢
      • 2018-08-13
      • 2016-08-19
      • 1970-01-01
      • 1970-01-01
      • 2015-12-15
      • 2013-08-21
      • 1970-01-01
      • 2018-11-26
      • 1970-01-01
      相关资源
      最近更新 更多