2009-05-22 6 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를 *입니다 * 자바 스크립트, 나는 문제가 입심 응답을하지가 있어요 정확한 코드를 답으로 다시 게시하십시오. : P –

+0

왜 이렇게해야합니까? 어떤 jquery 기능을 사용해야합니까? 당신의 목표는 무엇입니까? 기타? – jrcs3

+3

@ 대니 엘 : 모든 jQuery는 자바 스크립트이지만 모든 자바 스크립트가 jQuery는 아닙니다. – tvanfosson

답변

10

비밀번호가 이미 변경된 경우 (1이 해당) 페이지의 탐색 링크를 비활성화하려는 경우에 맞습니다.

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

> 즉각적인 자식을 선택 ... 반면에 getElementsByTagName은 부모 노드의 하위 노드를 선택합니다. 또한 .attr 함수를 사용하여 비활성화를 설정할 수 있습니다. 작은 nitpicks, 그냥 내가 공유 줄 알았는데. –

+0

완벽하게 보입니다. –

+0

그래도 html에는 적절한 속성이 있지만 비활성화되어 있습니까? – TStamper

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

감사합니다. 나는 귀하의 접근 방식을 좋아합니다. – Shiva

+0

그래서 답을 정답으로 표시하십시오 : P –

0

추정 HasPasswordAlreadyChanged는 0 또는 1 (또는/flase TRUE)

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 %'); 
}); 

이는 ID sNav와 노드의 모든 하위 a 태그를 선택 true로 자신의 비활성화 모든 속성을 설정하고 클릭 이벤트에 호출 될 지정된 반환 거짓 기능을 설정합니다.

마지막 부분 인 지정된 함수를 사용하는 $()에 대한 호출은 DOM을 사용할 준비가되었을 때 함수를 실행하고 함수를 전달할 때 $(document).ready()의 동의어입니다. 이것을 window.onload 설정으로 대체 할 수도 있지만, $()에 대한 호출이 jQuery에서 더 선호됩니다.

+0

해결책 주셔서 감사합니다. 아주 좋은 설명이 있습니다. 그게 너 진짜 종류 야! – Shiva

0

JavaScript가 작동 중이므로 버그를 발생시킬 위험이 있으므로 jQuery로 변환 할 때 가치가 없습니다.

내가 사용하고 고려할 수있는 유일한 것은 jQuery의 이벤트 처리보다는 명시 적으로 창로드를 사용하여 : 감안할 때

function hasPasswordChanged() { 
    // unchanged 
} 

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