2012-05-11 33 views
0

私はサイトロード時に無効にしたいaボタンを持っています。チェックボックスをオンにすると、aリンクがクリック可能になります。HTMLリンクタグオンロードを無効にする

入力タイプボタンでこれを試しましたが、問題は入力ボタンが私のsmoothscrollエフェクトでは機能しません。

ありがとうございました。

+0

は、あなたがjsfiddle.netであなたが持っているもののサンプルを作成できます? –

+0

http://jsfiddle.net/QBWTr/ ボタンをリンクタグに変更する前に、これは私が今持っているものです。私はjqueryコードの入力ボタンをまだ含んでいません。 Thanks –

+0

ハイパーリンクでdisabled属性を使用することはできません。それは入力要素用です。 – j08691

答えて

1

これはうまく動作するはずです:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script> 

<a id="alink" href="javascript:void(0);">Some Link</a> 

<br /><br /> 

<input id="chkid" type="checkbox" value"" name="somename" /> 

<script type="text/javascript"> 
$(document).ready(function(){ 
$('#chkid').unbind("click").click(function(){ 
var chkid = this.id; 
if($(this).is(':checked')){ 
$("a#alink").attr('href', 'http://www.google.com'); 
}else{ 
$("a#alink").attr('href', 'javascript:void(0);'); 
} 
}); 
}); 
</script> 
+0

これはうまくいきました、ありがとうございました。しかし、私は別の助けを求めたいと思います。どのようにjQueryスムーズスクロールコードを追加する必要がありますか?http://jsfiddle.net/QBWTr/有効なリンクはリンクされていないので、 div id = "#link">をクリックします。他の「a」はこの滑らかなスクロール効果で動作します。再度、感謝します。 –

+0

それは別の質問です。私の解決策があなたの最初の問題を解決した場合は、回答としてマークしてください。あなたは実際に何をしようとしているのかを他の人が見ることができるように、jsfiddleにあなたのhtmlを含む完全なコードを投稿する必要があります。 – Patriotec

0

CSS:

button.dead { 
    background: transparent; 
    border: none 
} 

button.dean a { 
    color: #ddd 
} 

をjQueryの:

$(function() { 

    // toggleWrap() function will call when user change the checkbox 
    // wrap -> parameter contain true or false (which is chekcbox status) 

    function toggleWrap(wrap) { 
     // checking for the condition when checkbox is not checked 
     if(!wrap) { 
      // wrapping the <a> tag with a button which is 
      // disabled, so it will unclickable 
      $('a').wrap($('<button/>', { 
       disabled: true, 
       'class': 'dead', // this class have some CSS 
       width: $('a').width() // width of button change to <a> width 
      })); 
     } else { 
      // following code will work when checkbox is not checked 
      // .unwrap() function will remove the <button> wrapper from <a> 
      // and unpack the <a> tag to clickable 

      $('a').unwrap(); 
     } 
    } 

    $('input:checkbox').on('change', function() { // bind event to fire when user change the checkbox 
     // this.checked hold the checkbox status 
     // which is boolean true => if checked or false => if not checked 
     toggleWrap(this.checked); 
    }); 
    toggleWrap(false); // this is the initial call to function at page load 
});​ 
+0

ようこそスタックオーバーフロー!このコードがなぜ機能するのかを説明するためにいくつかの物語を追加することを検討し、その質問に対する答えは何ですか? –

+0

@AndrewBarber Sir氏に説明してください。このコードの問題点は何ですか?それは完璧な解決策ではないかもしれませんが、うまくいくでしょう。私はデモを与えました –

+0

答えは一般的にコードを説明するときにはうまくいきます。そうすれば、質問をしている人は、 "show me te codez"以外の何かを学ぶことができます。 –

関連する問題