0

まず第一に、これを手伝ってくれてありがとう。

私の英語でごめんなさい;-)

私の問題を理解しやすくするために、私のプロジェクトへのリンクを提供します

http://lix.in/-c20b94

右側にあるように、ソーシャル パネルがあります。

jquery を使用して、それぞれのパネルを (最後のフィードで) 開きたいと思いました。ここでいくつかの投稿を読んだ後、私はそれを機能させることができました(私はjqueryがあまり得意ではありません)。しかし、私にはまだ問題があります。

別のボタン (facebook、youtube...) をクリックするとわかるように、パネルはオフ/オンに切り替わりますが、ボタン自体はアクティブな位置にとどまります。元の位置には戻りません。トグルの問題が原因だと思います

コード:

$(".link1").click(function(){
    $("#twittercontent, #youtubehome").hide();
    $("#pz_fbplugin").toggle("fast");
    $(this).toggleClass("active");
    return false;
    $(".link2, .link3").removeClass('active');
    $(".link1").addClass("active");
});

$(".link2").click(function(){
    $("#pz_fbplugin, #youtubehome").hide();
    $("#twittercontent").toggle("fast");
    $(this).toggleClass("active");
        return false;
    $(".link1, .link3").removeClass("active");
    $(".link2").addClass("active");
});

$(".link3").click(function(){
    $("#pz_fbplugin, #twittercontent").hide();
    $("#youtubehome").toggle("fast");
    $(this).toggleClass("active");
    return false;
    $(".link1, .link2").removeClass("active");
    $(".link3").addClass("active");
});

CSS:

a.facebook {width: 46px;position: fixed; right:0;  height: 130px; top: 175px; margin-right: 0; background: url("socialrudyfacebook.png")no-repeat; z-index:51}
a.facebook:hover{width: 129px}
a.active.facebook{width: 129px}

a.twitter{width: 46px; position: fixed; height: 130px;right: 0; top: 317px; margin-right: 0;z-index: 51;background: url("socialrudytwitter.png")no-repeat; a-index:51}
a.twitter:hover{ width: 129px}
a.active.twitter{ width: 129px}

a.youtube{width: 46px;position: fixed; height: 130px; right: 0; top: 457px ;z-index: 150; background: url("socialrudyyoutube")no-repeat; a-index:51}
a.youtube:hover{ width: 129px}
a.active.youtube{ width: 129px}

これで私を助けてくれることを願っています。

4

3 に答える 3

0

あなたreturn falseがコードの残りの部分が実行されていないとき。リモートで接続すれば機能します。または、単純にするために次の手順を実行します。

各リンクに同じクラスを追加します。「タブ」のように。

次に、.clickごとに、電話をかけます。

$('.tab').removeClass("active");

また、タブをクリックすると、残りの部分が元の状態に戻ることを確認できます。

if ($(this).hasClass('active'))
    $(this).removeClass('active');

その行を各.clickに追加すると、機能するはずです

于 2012-06-05T15:18:45.327 に答える
0

return false関数の最後に移動します。これは助けなければなりません。

于 2012-06-05T15:21:00.020 に答える
0

あなたの問題はreturn false. 削除するか下に移動すると、機能するはずです。return の代わりに、次のものも使用できます。

$(".link3").click(function(e){
    e.preventDefault();
    // your function and stuff
});
于 2012-06-05T15:20:26.490 に答える