php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.01.2011, 20:28  
Erfahrener Benutzer
 
Registriert seit: 10.02.2009
Beiträge: 929
ragtek ist ein sehr geschätzer Menschragtek ist ein sehr geschätzer Menschragtek ist ein sehr geschätzer Menschragtek ist ein sehr geschätzer Mensch
Standard [Erledigt] Scopeproblem mit jquery toggle

Ich habe folgenden Code:
Code:
$(document).ready(function(){
    $sidebar = $(".sidebar");
    $switchButton = $("#switchButton");
    console.log($switchButton);
    $container = $(".mainContainer");
    $content = $(".mainContent");


    $jumpMenuLink = $('.jumpMenuTrigger').parent();
    $switchButton1 = $('<span id="switchButton" class="switchside_r" title="toggle sidebar"></span> ')
    .appendTo($jumpMenuLink)
    .click()
    .toggle(
        function(){
            $switchButton1.removeClass("switchside_r").addClass("switchside_l");
            $container.removeClass("mainContainer");
            $content.removeClass("mainContent");
                $sidebar.animate({
                        width: 'hide',
                        opacity: 'hide'
                        }, 1000
                     );
        },
        function(){
            $switchButton1.removeClass("switchside_l").addClass("switchside_r");
            $container.addClass("mainContainer");
            $content.addClass("mainContent");
                $sidebar.animate({
                    width: 'show',
                    opacity: 'show'
                    }, 1000
                );
        }
);
});
denn ich etwas modernisieren wollte (um auch JS OOP zu lernen)

das hier ist mein versuch, der jedoch aufgrund eines scopeproblems nicht funktioniert.
Code:
Ragtek.Sidebar.prototype = 
    {
        __construct: function()
        {
            this.$sidebar = $('.sidebar');
            this.$container = $('.jumpMenuTrigger').parent();
            this.$main = $(".mainContainer");
            this.$content = $(".mainContent");

            this.$togglebutton = $('<span id="switchButton" class="switchside_r" title="toggle sidebar"></span> ')
            .appendTo(this.$container)
            .click()
            .toggle(
                        function()
                        {
                            console.log(this);
                            this.$togglebutton.removeClass("switchside_r").addClass("switchside_l");
                            this.$main.removeClass("mainContainer");
                            this.$content.removeClass("mainContent");
                            this.$sidebar.animate({
                                    width: 'hide',
                                    opacity: 'show'
                                }, 1000
                            );
                        },
                        function()
                        {
                            this.$togglebutton.removeClass("switchside_l").addClass("switchside_r");
                            this.$main.addClass("mainContainer");
                            this.$content.addClass("mainContent");
                            this.$sidebar.animate({
                                width: 'show',
                                opacity: 'show'
                                }, 1000
                            );
                        }
                    ); // toggle end
        },
        toggle:function()
        {

        }
    };
Das Problem ist, dass hier
Code:
 .toggle(
                        function()
                        {
                            console.log(this);
                            this.$togglebutton.removeClass("switchside_r").addClass("switchside_l");
this auf $switchButton1 zeigt, anstatt auf das Objekt

Weiß jemand Rat?
ragtek ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 25.01.2011, 20:37  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Ja. Benutze eine Variable, die Du über ein Closure in die Methode bringst.

Code:
var that = this;
PS: Cool, diese Anwendung von toggle kannte ich noch gar nicht.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 25.01.2011, 20:49  
Erfahrener Benutzer
 
Registriert seit: 10.02.2009
Beiträge: 929
ragtek ist ein sehr geschätzer Menschragtek ist ein sehr geschätzer Menschragtek ist ein sehr geschätzer Menschragtek ist ein sehr geschätzer Mensch
Standard

Phu, danke.

Jetz wo ich that = this gelesen habe, ist mir wieder alles eingefallen.
Danke

Jetzt muss ich nur noch schauen, wie ich hier vernünftige Methoden hier baue, da das doch ganz anders als die jquery Kettenbildung ist
Irgendwie wiederspricht sich das, oder?*g*

Geändert von ragtek (25.01.2011 um 20:53 Uhr).
ragtek ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
jQuery, einem DOM-Knoten eine Payload anhängen Chriz JavaScript, Ajax und mehr 6 22.12.2010 15:31
jQuery - Text an Cursorposition einfügen Koala JavaScript, Ajax und mehr 5 11.11.2010 21:28
Bin noch ein Anfänger mit jquery bitte um hilfe bomber007 JavaScript, Ajax und mehr 4 19.08.2010 23:34
[Erledigt] jQuery Slider - In eine Richtung sperren Trainmaster JavaScript, Ajax und mehr 2 08.08.2010 16:06
[Erledigt] Statistik mit jQuery DJ_RhoxxZ JavaScript, Ajax und mehr 6 25.07.2010 17:47
jquery: dialogbox funktioniert nicht Dreamwatcher JavaScript, Ajax und mehr 16 22.07.2010 18:22
jQuery findet Element nicht ByStones JavaScript, Ajax und mehr 8 11.06.2010 14:03
jQuery Plug scroll to - wie einbetten? mxxxx JavaScript, Ajax und mehr 5 24.04.2010 18:12
jQuery toggle Chriz JavaScript, Ajax und mehr 22 21.04.2010 02:37
JQuery Upload mittels Array/hiddenfields Das_Pfau JavaScript, Ajax und mehr 7 13.03.2010 11:03
[Erledigt] Jquery Selektoren chunky JavaScript, Ajax und mehr 5 14.02.2010 11:14
[Erledigt] [Erledigt] jQuery Endlos Scrolling Umlaute kn0wledge JavaScript, Ajax und mehr 0 18.10.2009 19:29
[Erledigt] jQuery Dateien nachladen Phoscur JavaScript, Ajax und mehr 7 14.03.2009 13:44
jQuery Plugin - so richtig? stayInside JavaScript, Ajax und mehr 5 23.02.2009 12:34
For Schleife mit jQuery phpbeginner JavaScript, Ajax und mehr 3 22.11.2008 22:35

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
jquery toggle, toggle js, toggle jquery, jquery toogle sidebar, jquerytoggle.js, content toggle width, jquery sidebar toggle, jquery-toggle.js, jquery scope class, jquery toggle spinnt, jquery toggle php, g javascript scope problem jquery ready, problem jquery toggle, php jquery toogle problem, toggle jquery jumping problem, jquery toggle class not working, jquery animate width show problem, jquery toggle class, jquery toggle problem, javascript jquery toogle menu

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:08 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum