2009-05-22 84 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 %>'); 
}); 
相關問題