临时更改多个 href 属性

Temporarily change multiple href attributes

我需要暂时禁用多个链接并为它们提供新功能。 它们是导航菜单中的链接,在移动设备上成为显示下拉菜单的按钮,而不是将用户带到页面。 (这很好,因为他们将用户带到的页面有点多余)

示例:

<div>
    <ul>
        <li>
            <a href="xyz"> FIRST LINK </a>
        </li>
        <li>
            <a href="zyx"> SECOND LINK </a>
        </li>
        <li>
            <a href="abc"> THIRD LINK </a>
        </li>
    </ul>
</div>

所以我打算做一个函数,在window小于900px的时候,临时把href属性改成“#”。那么如果再宽一点,函数就不会运行.

这很容易,但挑战在于,当我将大小时从 < 900px 调整为 > 900px 时,原始 href 属性值不会恢复。我怎样才能恢复它们?

p.s。这是 wordpress 菜单的一部分,因此您必须考虑它的动态命名等。

谢谢!

<div>
    <ul>
        <li>
            <a href="xyz" class="navg" data-hrf=""> FIRST LINK </a>
        </li>
        <li>
            <a href="zyx" class="navg" data-hrf=""> SECOND LINK </a>
        </li>
        <li>
            <a href="abc" class="navg" data-hrf=""> THIRD LINK </a>
        </li>
    </ul>
</div>


<script type="text/javascript">

 $(document).ready(function(){

     function size_changed(){
         var width = $(window).width();
         if(width <= 900){

              // less then 900 so remove href with #
              $('.navg').each(function(){
                   var old = $(this).attr('href');
                   $(this).attr('data-hrf', old);   // store real href in data-hrf attribute
                   $(this).attr('href', '#');
              }); 

         }else{

             // more then 900 so restore
             $('.navg').each(function(){
                   var old = $(this).attr('data-hrf');
                   if(old != "" ) $(this).attr('href', old);  
             }); 

         }  // if __width

    } // will call everytime when you change the screen size

    // Now set this function as width change handler

   $(window).resize(function() {

         size_changed();

   });            

   // What if screen size is 500px alredy so call this funciton at starting the page
   size_changed();

 }); // document _ready
</script>

谢谢 :) ,可能会有一些拼写错误,因为我没有测试这段代码,但它会工作;)