2016-08-04 11 views
0

jqueryのクリック機能を起動する問題に直面しています。 jqueryを使って電話番号と電子メールを隠したい。電話番号とメールアドレスは、<p>タグをクリックした場合のみ表示されます。クリックしたときにJqueryのクリック機能が動作しない

以下は私がすでに書いている私のjquery関数です。

function() { 
    var $phone = '123456123', 
     $email = '[email protected]', 
     phone = $('#phone'), 
     email = $('#email'); 

    $(phone).click(function() { 
     var text = $(this).text() == $phone ? 
      'Click to view number' : $phone; 
     $(this).text(text).toggleClass("active"); 
    }); 

    $(email).click(function() { 
     var text = $(this).text() == $email ? 
      'Click to view email' : $email; 
     $(this).text(text).toggleClass("active"); 
    }); 

}();  

コードを実行すると、数字タグをクリックしても何も変わりません。

+1

あなたのコードについては何も問題はありませんか?特定のエラーメッセージが表示されますか?それは負荷をかけてから何もしないのですか?このサイトで質問をするには、次の記事を読んでください:http://stackoverflow.com/help/how-to-ask –

+0

あなたのcssコードは 'active'クラスはどこですか?あなたはそれが非アクティブなときのためのCSSを持っていますか? – Jodes

+0

'$( '#phone')を使用します。クリック()'または 'phone.click()' - あなたはあなたが持っている方法で余分な "$"を必要としません。 – ldg

答えて

1

だけでjsの上に小さな修正を必要としていました。 これを見てくださいhere

$(function() { 
    var $phone = '123456123', 
      $email = '[email protected]', 
      phone = $('#phone'), 
       email = $('#email'); 

    $(phone).click(function() { 
     var text = $(this).text() == $phone ? 
      'Click to view number' : $phone; 
     $(this).text(text).toggleClass("active"); 
    }); 

    $(email).click(function() { 
     var text = $(this).text() == $email ? 
      'Click to view email' : $email; 
     $(this).text(text).toggleClass("active"); 
    }); 
});  
+0

ありがとうございます。私はドル記号を付けた後、私が欲しいもののように働きます。 –

3

あなたのコードは次のようである:

function() { 
    // code 
}(); 

IIFEsはそのように動作しません。関数を()にラップします。

(function() { 
    // code 
})(); 

そして、それは機能します。

other waysもあります。機能を「アクティブにする」ためです。最高のスタイルは議論の余地があります。私がお勧めするのは、1つを選んで一貫して使用することです。

See jsbin demo here.

+0

訂正ありがとうございました:) –

関連する問題