Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как правильно писать классы с использованием jQuery? (https://javascript.ru/forum/jquery/5411-kak-pravilno-pisat-klassy-s-ispolzovaniem-jquery.html)

Tpona 13.10.2009 11:36

Как правильно писать классы с использованием jQuery?
 
Начал писать класс используя mootools дошел до момента, когда ф-ии кнопке на клик устанавливаем обработчик в нем мне нужно видеть переменные и ф-ции своего класса, но вижу соотв-но в this я так понял саму кнопку?, уже обчитался по этой теме, попробовал classy который и сам автор не жалует (кстати он вообще не заработал).

Как заставить видеть себя в this ?

В принципе еще не поздно в корне подойти иным способом, но хотелось бы остаться на jQuery.

Kolyaj 13.10.2009 12:12

Цитата:

Сообщение от Tpona
Начал писать класс используя mootools

Цитата:

Сообщение от Tpona
но хотелось бы остаться на jQuery.

???

http://javascript.ru/tutorial/object/thiskeyword

Tpona 13.10.2009 12:16

)))) да я начинающий, так как возможностей создания классов на jquery мною найдено небыло решил как то их вместе использовать, mootools в данном случае только для написания класса.

Tpona 13.10.2009 12:28

По ссылке прочел, и впринципе уже читал, но решение для jQuery никак не найду ((

Tpona 13.10.2009 13:49

Вобщем помог .bind


var JsCalc = Class.extend({
construct:
function(elementId) {
this.elementId = "#"+elementId;
jQuery(this.elementId).bind("click", {thisObj:this, element: this.button},
function(eventData){
eventData.data.thisObj.job(eventData.data.element) ;
}
);
},
job: function()
{

alert(this.elementId);
}
});

Tpona 13.10.2009 14:06

а вот с ф-ей .ajax такого не замутить ((
Что же делать?

e1f 13.10.2009 15:02

Зачем Вам mootools и jquery на одной странице? Если хотите сохранить ссылку на старый this, замкните его перед этим, к примеру:
var _self = this;
$.ajax(url, function(){
this // тут this не помню что, мб XMLHttpRequest
_self // а это запомненная ссылка на предыдущий this
});

Tpona 13.10.2009 15:16

Вот так вот просто оказывается ?
Блин столько уже подводных камней было на моем пути (в основном из-за недостаточного ознакомления с самим языком), тут нет их?
Вроде работает )) Спасибо!


Часовой пояс GMT +3, время: 03:57.