krzysztof114
#wordpress #webdev

W header.php dodałem

$('.komentarze').click(function(){
$('#comments').toggle('')
});

W menu mam link #komentarze z klasą .komentarze, w css #comments mają display na none. Po kliknięciu w link w menu toggle nie zmienia mi klasy. Dlaczego?
  • Najlepsze
  • Wszystkie komentarze
H.....s
H.....s
Mokrysedes
@krzysztof114: Po pierwsze - jeśli dany element ma się pokazywać z użyciem JS to do jego ukrycia również używaj JS. Jak nie załaduje się JS to treść jest wciąż dostępna.

Wracając do problemu: dodaj swój skrypt do footer.php kiedy już elementy które chcesz manipulować są w DOM i zobacz czy dalej jest to samo. Zaznajom się też z https://learn.jquery.com/using-jquery-core/document-ready/ Zgaduję że bibliotekę jQuery ładujesz przed swoim skryptem?
P.....5
P.....5
@krzysztof114: na końcu body dodaj ten swój skrypt i musi to być w funkcji ready

$(function() {
$( ".komentarze" ).click(function() {
$( "#comments" ).toggleClass( "nazwaklasy" );
});
});
Mokrysedes
@krzysztof114: A to w footer?

$( document ).ready(function() {
$( ".komentarze" ).click(function() {
$( "#comments
giker
giker
1
Z Twójego kodu:

$('#comments').toggle('')
Zmieni tylko (show/hide) elementu z ID "comments".

Jeśli chcesz dodawać i usuwać klasę "komentarze" do elementu "#comments" ,
k.....t
k.....t
@krzysztof114: Coś widać w konsoli? Jeśli chodzi o wordpressa to często musiałem

jQuery(document).ready(function($) {
// costam
})
Mokrysedes
@giker: Racja, nie doczytałem. W takim wypadku kod powinien wyglądać tak:

$( document ).ready(function() {
$( "#comments" ).addClass("komentarze");
$( ".komentarze" ).click(function() {
$( "#
Mokrysedes
@krzysztof114: Zapytam po raz kolejny czy w konsoli masz jakieś błędy? https://developers.google.com/web/tools/chrome-devtools/console/
Mokrysedes
@krzysztof114: No to zrób to co napisał @khejit wyżej :)
k.....t
k.....t
@krzysztof114: Dawaj plusy.
krzysztof114
krzysztof114 Autor
1
@khejit: a masz dwa, niech stracę.
krzysztof114
krzysztof114 Autor
0
@Hajmus: czytałem, ale nie widzę rozwiązania. Mimo to dzięki, będę szukał.
@Mokrysedes: po dodaniu do footer.php nadal bez zmian. Sprawdziłem podgląd źródła i zarówno mój js jak i jquery ładują się ok, najpierw jquery, a na samym końcu mój mały dopisek.
krzysztof114
krzysztof114 Autor
0
@Mokrysedes: @giker:
$(function() {
$( ".komentarze" ).click(function() {
$( "#comments"
krzysztof114
krzysztof114 Autor
0
@Mokrysedes: wybacz, odpisuję testując... faktycznie jest błąd:

Uncaught TypeError: $ is not a function
at ?p=1:359
giker
giker
0
$ is not a function - znaczy, że nie ma załadowanego jQuery.
krzysztof114
krzysztof114 Autor
0
@giker: @Mokrysedes: @khejit: Dzięki.
Działa w tej wersji:

jQuery(function($) { // DOM is now ready and