jqueryでリンクのオン、オフの切替について質問させていただきます。


<div id="linklist">
<a href="hoge">hoge.com</a>
<a href="abcdefg">aaaaa.com</a>
<a href="123456">bbb.com</a>
<a href="iujga">cccc.com</a>
</div>
<div id="linkSwitch"><p>リンクオフ</p></div>


のような形で、linkSwitchを押した場合に一時的にa要素を無効にし、再度linkSwitchを押した場合に元に戻すようなことは可能でしょうか?

removeAttrでhrefを削除してしまうと元に戻せなく、方法を模索しております。。
現在は一旦オフにした場合、もう一度linkSwitchを押すとリロードするようなスマートではない形で実装をしています。。

$("#linkSwitch").toggle(
function(){
$("#linkSwitch p").text("リンクオン");
$("#linklist a").removeAttr("href");
},

function(){
$("#linkSwitch p").text("リンクオフ");
location.reload();}
});

どうぞよろしくお願いいたします。

※補足
・プログラミング歴4ヶ月目
・lamp+jquery
です。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2011/11/08 15:37:49
  • 終了:2011/11/08 19:53:26

ベストアンサー

id:a-kuma3 No.2

a-kuma3回答回数4442ベストアンサー獲得回数18252011/11/08 16:17:28

ポイント60pt

こちらは、イベントハンドラ自体を削除してしまう方法。

$("#linkSwitch").toggle(
        function(){
            $("#linkSwitch p").text("リンクオフ");
            $("#linklist a").click(function() {
                    return false;
                });
        },
        function(){
            $("#linkSwitch p").text("リンクオン");
            $("#linklist a").unbind("click");
        }
    );

http://jsfiddle.net/Bdb8Z/ … jsFiddle で試してみました。

id:kuso47

ありがとうございます。こちらの形で実装することができました!

2011/11/08 19:52:49

その他の回答(1件)

id:Lhankor_Mhy No.1

Lhankor_Mhy回答回数779ベストアンサー獲得回数2302011/11/08 16:06:11

ポイント40pt

いろいろ方法はありそうですが。

フラグを使う方法。

var f =true;
$('#linklist a').click(function(){return f;});
$('#linkSwitch').toggle(
    function(){f =false},
    function(){f =true}
)
id:a-kuma3 No.2

a-kuma3回答回数4442ベストアンサー獲得回数18252011/11/08 16:17:28ここでベストアンサー

ポイント60pt

こちらは、イベントハンドラ自体を削除してしまう方法。

$("#linkSwitch").toggle(
        function(){
            $("#linkSwitch p").text("リンクオフ");
            $("#linklist a").click(function() {
                    return false;
                });
        },
        function(){
            $("#linkSwitch p").text("リンクオン");
            $("#linklist a").unbind("click");
        }
    );

http://jsfiddle.net/Bdb8Z/ … jsFiddle で試してみました。

id:kuso47

ありがとうございます。こちらの形で実装することができました!

2011/11/08 19:52:49
  • id:tdoi
    両方のブロックを作っておいて、displayを切り替えるってのはなしですか?

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません