2009-05-22 9 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

を、私はglibの応答をしていない悩みを抱えていますあなたの正確なコードを回答として再投稿することができます。 :P –

+0

なぜこれを行う必要がありますか?どのjquery機能を使用する必要がありますか?あなたの目的は何ですか?等? – jrcs3

+3

@ダニエル:すべてのjQueryはJavascriptですが、すべてのJavascriptがjQueryであるとは限りません。 – tvanfosson

答えて

10

パスワードが既に変更されている場合は、ページ上のナビゲーションリンクを無効にしたいとします。

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

>直接の子供を選択します...一方、getElementsByTagNameは親ノードの子孫を選択します。また、.attr関数を使用して無効を設定することもできます。 小さなニトックス、ちょうど私が共有したいと思った。 –

+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 /真)のいずれかである

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が動作しているので、バグを導入する危険性があるため、JavaScriptをjQueryに変換することはおそらく価値がありません。

私は検討するかもしれない唯一のものは、jQueryのイベント処理を使用してではなく、明示的にwindow.onload使用している:jQueryの*は*のJavaScriptであることを考えると

function hasPasswordChanged() { 
    // unchanged 
} 

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