0

私はこれに何日も立ち往生しているので、誰かがこの問題を解決するのを手伝ってくれたら本当にありがたいです。

私はWordpressのテーマをやっていて、ユーザーがTwitterのユーザー名を入力できるオプションパネルがあります。ユーザー名を入力するとTwitterアイコンがフッターに表示され、フィールドを空のままにしてユーザー名を入力しないとTwitterアイコンが非表示になります。

Twitterアイコン画像は「.twitter」というdivクラスで呼び出され、現在、入力ID値が空の場合でも、Twitterアイコンは常に存在します。だから私がやりたいのは、入力ID値が空のときにこのdivクラスを非表示にして、アイコンが消えるようにすることです。

誰かがこのjQueryを使用すると言う前に、私がこの質問をしたとき:

<script type="text/javascript">
$(document).ready(function() {

    if($('#mytheme_twitter').val() == '' ){$('.twitter').hide();}  

    $('#mytheme_twitter').on('change' , function() {

         if( this.value != ''){

               $('.twitter').show(); 
          }
          else{
               $('.twitter').hide(); 
         }
    });
  });
</script>

このjQueryをheader.phpに入れましたが、何らかの理由で機能していません。divクラスの名前は間違いなく'.twitter'なので、間違っているのは入力IDのセレクターである可能性がありますか?Firefoxのオプションパネルに移動し、Firebugで入力ボックスを強調表示しました。これは間違いなく「#mytheme_twitter」です。「input#mytheme_twitter」も試しましたが、それも機能しません。

オプションパネルは、index.phpファイルではなく、別のphpファイルにあります。それが機能しない理由でしょうか...その入力IDがindex.phpで定義されていないためですか?私はjQueryの初心者であり、phpのコツも最近始めたばかりなので、私自身はこれについてあまり知りません。

4

3 に答える 3

0

JavaScriptは正常に機能しています:http://jsfiddle.net/XdeHP/

あなたの問題は他の場所にあるに違いありません。

于 2012-10-09T17:58:26.027 に答える
0

試す

$("#mytheme_twitter").change(function(){
if( $(this).val() != ''){

        $('.twitter').show(); 
    }else{
        $('.twitter').hide(); 
    }
});
于 2012-10-09T18:02:11.477 に答える
0

JSが管理者にあるボックスを呼び出しているようです。.twitterそれとが同じページにない限り、その値を引き出すことはできません(いくつかの過剰な機能なしで)。

PHPでこれを行う方が良いでしょう:このようなもの

if(get_option('twitter', 'your-page')) !=='') { //show div }

それはあなたのfooter.phpに配置されます

于 2012-10-09T18:06:13.990 に答える