2009-05-22 77 views
0
<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> 
+1

鉴于jQuery的*是*的JavaScript,我无法不使油嘴响应并重新发布您的确切代码作为答案。 :P – 2009-05-22 18:57:54

+0

为什么你需要这样做?你需要使用哪些jQuery功能?你的目标是什么?等等? – jrcs3 2009-05-22 18:59:06

+3

@Daniel:虽然所有的jQuery都是Javascript,但并非所有的Javascript都是jQuery。 – tvanfosson 2009-05-22 19:01:13

回答

10

假设我是正确的,如果密码已更改(1为true),您希望禁用页面上的导航链接。

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

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

或位wierder:

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

假定HasPasswordAlreadyChanged是0或1(或FLASE /真)

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

此外,没有被禁用的A元素的属性会以任何方式影响它?

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

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

这将选择所有a标签是id为sNav节点的孩子,将他们所有的残疾人属性为true,并设置指定返回false功能在click事件被调用。

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

0

随着JavaScript的运行,在将其转换为jQuery时可能没有任何价值,可能会引入任何错误。

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

function hasPasswordChanged() { 
    // unchanged 
} 

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