2012-01-19 9 views
1

このスクリプトでは、「表示」リンクをクリックしてプレビュー画像を表示すると、リンクテキストが「非表示」に変わります。 3回目のクリック後にのみ機能します。Jqueryをクリックして「表示」または「非表示にする」テキストを変更する

<span id='previewLinks'><br/><a id='showPreview' title='".get_option('my_theme')."'>Show</a> 

$('#showPreview').click 
(
    function(e) 
    { 
    var myImage = $('#my_theme :selected').val(); 
    $('#largePreview').slideToggle(0, function() { 
     $('#showPreview').text($(this).is(':visible') ? 'Hide' : 'Show'); 
    }); 
    $('#largePreview').attr('src', '<?php echo get_bloginfo('template_directory') ?>/styles/'+myImage+'/screenshot-help.jpg'); 
    } 
); 
+0

'#largePreview'は最初に表示されているか隠れていますか? –

+0

'hide()'の代わりにdurationが0の 'slideToggle'を使用している理由は何ですか? – Jasper

答えて

2

あなたはこれを試すことができます

See example here.
1.

$(document).ready(function(){ 
}); 

2. <a href="javascript:;"> TEXT </a> will give you a right anchor
がそれを願っています助けて! Jasper Tooに感謝します。

+0

@Scott Bここでは、最初の 'click()'を追加します。 – thecodeparadox

1

#largePreviewはあなたが想定しているものから表示状態の反対を持っている必要がありますので、それは最初に動作しない理由があります。この変更により修正される場合があります。 !

$('#showPreview').text(!$(this).is(':visible') ? 'Hide' : 'Show'); 

それとも、#largePreviewのCSSを変更する必要がありますに注意してください。ちょうどあなたが間違っていたかを把握

$('#showPreview').click(
    function(e) { 
    var myImage = $('#my_theme :selected').val(); 
    $('#largePreview').slideToggle(0, function() { 
     $('#showPreview').text($(this).is(':visible') ? 'Hide' : 'Show'); 
    }); 
    $('#largePreview').attr('src', '<?php echo get_bloginfo('template_directory') ?>/styles/'+myImage+'/screenshot-help.jpg'); 
    }).click(); 
+0

これは反感のようなものですね。 '隠されたTHEN出力" hide "'、 'IF visible then output" show "' – Jasper

+0

@ジャスパー - ええ、私は数日前にこのような質問に答えて、ユーザーは実際にそれを望んでいました。私を混乱させましたが、一部の人々はそれをそのように見ていると思います。 – mrtsherman

0

+1

'$(this).filter(":visible ")'は常にtrueを返し、テキストは常に「非表示」に設定されます。 '.filter()'の代わりに '.is()'を使うと 'true' /' false'を返します: '$(this).is(":visible ")'。 '$(this)).filter(":visible ")。length> 0'の要素だけにフィルタリングした後、jQueryオブジェクトの' length'プロパティをチェックすることもできます。ここにjsfiddleのアップデート版があります:http://jsfiddle.net/Dgc3t/5/ – Jasper

+0

あなたは正しいです! – workdreamer

関連する問題