2013-05-31 22 views
5

Mam funkcję mouseover, która powinna dodać klasę do mojego elementu viewport, ale pojawia się błąd w firebug po najechaniu kursorem myszy: TypeError: jQuery (...). Addclass nie jest funkcją .Addclass nie jest funkcją jQuery

HTML jest:

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="<?php bloginfo('charset'); ?>" /> 
<title><?php wp_title('|','true','right'); ?><?php bloginfo('name'); ?></title> 
<meta name="viewport" content="width=device-width" /> 
<link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo('stylesheet_url' ); ?>" /> 
<?php wp_head(); ?> 
</head> 
<body <?php body_class($class); ?>> 
<header> 
<div class="main-logo"> 
    <div id="site-title"> 

    </div><!--.site-title--> 
</div><!--main-logo--> 

<div class="header-right"> 
</div><!--header-right--> 
</header> 

<nav class="main"> 
<?php wp_nav_menu(array('theme_location' => 'main-menu')); ?> 
</nav> 

<div class="viewport"> 
<script type="text/javascript"><!--//--><![CDATA[//><!-- 
jQuery(document).ready(function(jQuery){ 
jQuery('nav .home a').mouseover(function() 
    { 
    jQuery('.viewport').addclass('.viewporthome'); 
    }); 
}); 
//--><!]]></script> 
</div> 
</div> 

Te style są pokrewne:

.viewport 
    { 
height: 400px; 
width: 400px; 
position: relative; 
top: -90px; 
margin: 0 auto; 

} 

.viewporthome 
{ 
background-image: url('images/Screen2.png'); 
background-repeat: no-repeat; 
background-position: center; 
background-attachment: relative; 

} 

plik JS jest:

 var hoverhome = 'url("images/Screen2.png")'; 
    var empty = ''; 
    var success = 'SUCCESS!'; 
    //home 
    jQuery('nav .home a').hover(function() 
    { 
    jQuery('.viewport').css('background-image', hoverhome); 

    }); 
    jQuery('nav .home a').mouseout(function() 
    {  
     jQuery('.viewport').css('background-image', empty); 
    }); 

Odpowiedz

13

Spróbuj tego:

jQuery('.viewport').addClass('viewporthome'); 

addClass potrzebują kapitału "C".

Ponadto podczas dodawania zajęć nie trzeba wstawiać "." w ciągu znaków lub twojej klasy będzie ..viewporthome.

+0

WIELKI SUKCES! "Ponadto, dodając klasę, nie musisz wstawiać". "W łańcuchu, a twoja klasa będzie .viewporthome." Działa idealnie, dzięki pęczek. – Chris

5

Zastosowanie addClass zamiast addclass

+0

JavaScript jest bardzo, bardzo, bardzo rozróżniana – PitaJ

+6

nie, to tylko wielkość liter :) –

+0

To nie działa , Dziękuję Ci. Czy któreś z was widzi, dlaczego obraz tła nie pojawi się teraz, gdy powinien on dodać tę klasę? – Chris

1

Usuń dodatkową kropkę i używać addClass() nie addClass()

jQuery('.viewport').addClass('viewporthome'); 
+0

To spowodowało usunięcie błędu, ale obraz nadal się nie wyświetla – Chris

+0

Czy to pytanie jest takie samo jak w oryginale? –

+0

Nie jestem pewien, co rozumiesz przez mój oryginalny, ale z tym kodem, myślę, że dodana klasa sprawiłaby, że obraz Screen2 pojawiłby się w oknie roboczym div, gdy kliknę przycisk myszy na klawiaturze domowej – Chris

0

Sprawdź swoją kapitalizację. Metoda addClass ma duże "C".

jQuery addClass Method

Jeśli obraz nadal nie jest wyświetlany to chyba problem ze względną ścieżkę do obrazu. Jeśli folder obrazów nie znajduje się w tym samym katalogu, co plik JavaScript, może być konieczna modyfikacja ścieżki. Nie mogę dokładnie powiedzieć, co musisz zrobić bez znajomości struktury katalogów.

+0

Struktura: C:/wamp/www/sitename/wordpress /wp-content/themes/mytheme/images/Screen2.png – Chris

2

Dodawanie Klasa:

$(".something").click(function(){ 
    $(this).addClass("style"); 
}); 

Usuwanie Klasa:

$(".something").click(function(){ 
    $(this).removeClass("style"); 
}); 
+0

Wystąpił problem podczas próby 'this.addClass ('nazwa-klasy');' używając '$ (this) .addClass ('nazwa-klasy')' thanks thanks. –