2016-08-04 17 views
0

Ich habe ein Problem, jquery Klick-Funktion auszulösen. Ich möchte Telefonnummer und E-Mail mit jquery verstecken. Die Telefonnummer und E-Mail können nur sehen, wenn Sie das <p> Tag verwenden.Jquery Klick-Funktion funktioniert nicht, wenn geklickt

Unten ist meine jquery Funktion, die ich bereits schreibe;

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"); 
    }); 

}();  

Wenn ich den Code ausführen, klicke ich auf die Anzahl Tag, aber nichts ändern.

+1

Was ist mit Ihrem Code nicht? Erhalten Sie eine spezifische Fehlermeldung? Lädt es auf und dann nichts tun? Bitte lesen Sie den folgenden Artikel darüber, wie Sie eine Frage auf dieser Website stellen können: http://stackoverflow.com/help/how-to-ask –

+0

Wo ist Ihr CSS-Code für die 'active' Klasse? Und hast du CSS, wenn es inaktiv ist? – Jodes

+0

Verwenden Sie '$ ('# phone'). Click()' oder 'phone.click()' - Sie brauchen nicht das zusätzliche "$" wie Sie es haben. – ldg

Antwort

1

benötigt nur ein kleines Update auf js. anzeigen here Arbeits

$(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

Es ist Arbeit, danke. Ich arbeite wie ich will, nachdem ich das Dollarzeichen gesetzt habe. –

3

Ihr Code ist wie:

function() { 
    // code 
}(); 

IIFEs nicht so. Wickeln Sie die Funktion in() s:

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

Und es funktioniert.

Es gibt other ways für Sie, um die Funktion auch "zu aktivieren". Der beste Stil liegt im Streit. Alles, was ich empfehle, ist eins auszuwählen und es konsequent zu benutzen.

See jsbin demo here.

+0

danke für die korrektur :) –

Verwandte Themen