如何将此工作JAVASCRIPT代码转换为JQUERY

时间:2009-05-22 18:55:12

标签: javascript jquery

 <script language="javascript" type="text/javascript">


function hasPasswordChanged(value)
  {
        if(value == '1')
        {
            var container = document.getElementById("sNav");
            if(document.getElementsByTagName)
            {
               var hyperLinkList = container.getElementsByTagName("a");

               for(var currentLink in hyperLinkList)
               {
                    hyperLinkList[currentLink].disabled = true;
                    hyperLinkList[currentLink].onclick =function () { return false;}

               }

            }
        }
  }


  window.onload = function () 
  {
        hasPasswordChanged('<%  = HasPasswordAlreadyChanged %>');
  }

</script>

6 个答案:

答案 0 :(得分:10)

假设我是正确的,如果密码已经改变(1为真),你想要禁用页面上的导航链接。

$(function() {
   var changed = <%= HasPasswordAlreadyChanged %>;
   if (changed) {
      $('#sNav a').attr('disabled','disabled')
                  .click( function() { return false; } );
   }
});

答案 1 :(得分:1)

function hasPasswordChanged(value)
  {
        if(value == '1')
        {
            $('#sNav a').attr('disabled', 'true').click(function(){ return false; });
        }
  }

$(function(){
    hasPasswordChanged('<%  = HasPasswordAlreadyChanged %>');
})

或者有点啰嗦:

$(function(){
    <%  = HasPasswordAlreadyChanged %> == 1 ? $('#sNav a').attr('disabled', 'true').click(function(){ return false; }) : ""; 
});

答案 2 :(得分:1)

<script language="javascript" type="text/javascript">
  $(function(){
    if ('<%  = HasPasswordAlreadyChanged %>' == '1') {
      $("#sNav").find("a").attr("disabled","disabled").click(function(){return false;});
    }
  });
</script>

答案 3 :(得分:0)

假设HasPasswordAlreadyChanged为0或1(或flase / true)

jQuery(function($){
  !!<%= HasPasswordAlreadyChanged %> && $("#sNav a").attr("disabled",true).click(function(){return false;})
})

此外,A元素上的禁用属性是否会以任何方式影响它?

答案 4 :(得分:0)

function hasPassWordChanged(value) {
  if (value == '1') {
    $("#sNav a").attr("disabled", true).click(function() {return false;});
  }
}

$(function() {
  hasPasswordChanged('<%  = HasPasswordAlreadyChanged %');
});

这将选择作为标识为a的节点的子节点的所有sNav标记,将其所有已禁用的属性设置为true,并设置要在click事件上调用的指定的返回false函数。

最后一部分,使用指定函数调用$(),在DOM准备好处理时运行该函数,并且在传递函数时是$(document).ready()的同义词。您也可以使用window.onload设置替换此设置,但使用jQuery更适合使用$()

答案 5 :(得分:0)

当你的JavaScript工作时,将它转换为jQuery可能没有任何价值,冒着引入任何错误的风险。

我唯一可以考虑的是使用jQuery的事件处理而不是明确使用 window.onload

function hasPasswordChanged() {
    // unchanged
}

$(document).ready(function() {
    hasPasswordChanged('<%  = HasPasswordAlreadyChanged %>');
});