2013-05-31 14 views
5

Ich habe eine Mouseover-Funktion, die eine Klasse zu meinem Viewport-Element hinzufügen sollte, aber ich bekomme einen Fehler in Firebug, wenn ich mouseover: TypeError: jQuery (...). Addclass ist keine Funktion .Addclass ist keine Funktion in jQuery

die HTML ist:

<!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> 

Die verwandten Arten sind:

.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; 

} 

Die JS-Datei ist:

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

Antwort

13

Try this:

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

addClass brauchen ein großes "C".

Wenn Sie eine Klasse hinzufügen, müssen Sie auch nicht das "." in der Zeichenfolge oder in Ihrer Klasse wird ..viewporthome sein.

+0

GROSSER ERFOLG! "Außerdem müssen Sie beim Hinzufügen der Klasse nicht das Zeichen". "In die Zeichenfolge einfügen, sonst ist Ihre Klasse ..viewporthome." Funktioniert perfekt, vielen Dank. – Chris

5

Verwenden addClass statt addclass

+0

Javascript ist sehr, sehr, sehr case-sensitive – PitaJ

+6

nein, es ist nur case-sensitive :) –

+0

, dass die Arbeit tat , Danke. Sehen Sie, warum das Hintergrundbild jetzt nicht angezeigt wird, dass es diese Klasse hinzufügen soll? – Chris

1

entfernen zusätzlichen Punkt und verwenden addClass() nicht AddClass()

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

Dies hat den Fehler behoben, aber das Bild wird immer noch nicht angezeigt – Chris

+0

Nun, ist es die gleiche Frage wie Ihre ursprüngliche? –

+0

Nicht sicher, welche meinen Sie mit meinem ursprünglichen, aber mit diesem Code würde ich die hinzugefügte Klasse würde das Screen2 Bild in der Ansichtsfenster div erscheinen, wenn ich die Home-Taste mouseover – Chris

0

Ihre Kapitalisierung prüfen. Die Methode addClass hat ein großes 'C'.

jQuery addClass Method

Wenn das Bild zeigt, noch nicht bis es wahrscheinlich ein Problem mit dem relativen Pfad zu Ihrem Bild ist. Wenn sich der Bilderordner nicht im selben Verzeichnis wie Ihre Javascript-Datei befindet, müssen Sie möglicherweise den Pfad ändern. Ich kann nicht genau sagen, was Sie tun müssten, ohne Ihre Verzeichnisstruktur zu kennen.

+0

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

2

Hinzufügen einer Klasse:

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

eine Klasse ausbauen:

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

Ich hatte das Problem beim Versuch 'this.addClass ('class-name');' mit '$ (this) .addClass ('class-name')' half thanks. –