chcę sobie napisać prościutki system zakładek ale utknąłem w pewnym miejscu i nie bardzo wiem jak to rozegrać:
Kod
var Tabs = new Class({
initialize: function(menu, content) {
this.menu = menu;
this.content = content;
$(this.content).getChildren().setStyle("display", "none");
$(this.menu).getElements("a").addEvent("click", function(e){
e.stop();
// tu mam problem
});
}
});
initialize: function(menu, content) {
this.menu = menu;
this.content = content;
$(this.content).getChildren().setStyle("display", "none");
$(this.menu).getElements("a").addEvent("click", function(e){
e.stop();
// tu mam problem
});
}
});
W konstruktorze menu oznacza listę <ul> z menu, natomiast content to div zawierający divy z zawartościami poszczególnych zakładek.
I teraz problem: do każdego linku chciałbym dodać funkcję ($(this.menu).getElements("a").addEvent("click")), wewnątrz której miałbym dostęp zarówno do klikniętego linku w celu pobrania np. this.href oraz równocześnie dostęp do aktualnego obiektu klasy Tabs aby pobrać wartość this.menu. Jak to zrobić?
Tak sobie wyświetlam href linku:
Kod
$(this.menu).getElements("a").addEvent("click", function(e){
e.stop();
alert(this.href);
});
e.stop();
alert(this.href);
});
Natomiast tak (dodając bind()) mogę dostać się do aktualnego obiektu:
Kod
$(this.menu).getElements("a").addEvent("click", function(e){
e.stop();
alert(this.menu);
}.bind(this));
e.stop();
alert(this.menu);
}.bind(this));
Jednak jak sprawić abym miał dostęp do obu rzeczy na raz?
Z góry dzięki za pomoc,
pion
PS: może źle do tego podchodzę - w razie czego proszę o podsunięcie innego pomysłu.
PS2: Wcięcia szlag trafił?