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?