Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.03.2011, 15:01
Аспирант
Отправить личное сообщение для igrok Посмотреть профиль Найти все сообщения от igrok
 
Регистрация: 09.07.2010
Сообщений: 98

покритикуйте подход пожалуйста
Здравствуйте, пишу собственную UI библиотеку, она будет немного отличаться от существующих на данный момент. Прошу покритиковать метод создания объекта и работы с ним. Вот простейший пример:

function MySquare(id, name){
    this.prop1=name;

    this.showName=function(){
        alert(this.prop1);
    };

    $("<div id='" +id+ "' style='width: 50px; height: 50px;' class='MySquare'></div>").appendTo($("body"));
}
$(".MySquare").live("click", function(){
   var obj=getObjById($(this).attr("id"));

   obj.showName(); 
});
Ответить с цитированием
  #2 (permalink)  
Старый 30.03.2011, 15:24
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,805

Что вы этим хотели сделать?
Не впечатляет, не капли.
И что за getObjById?
хех и ещё по ржал, спасибо)
Интересно почему практически все по началу думают, что надо работать с элементами только по их id и что без них никуда, что это центр вселенной и ппц.
__________________
.

Последний раз редактировалось Skipp, 30.03.2011 в 15:37.
Ответить с цитированием
  #3 (permalink)  
Старый 30.03.2011, 16:06
Аспирант
Отправить личное сообщение для igrok Посмотреть профиль Найти все сообщения от igrok
 
Регистрация: 09.07.2010
Сообщений: 98

Спасибо за ответ,
этим я "абстрактно" создал квадрат, к которому могу обращаться как к объекту, не напрямую к тэгу, а к объекту, методы которого будут изменять тэг.
Метод getObjById просто взял с потолка, грубо говоря он будет по ID возвращать объект (тот самый о котором я написал выше).
То что поржали - всегда пожалуйста
По поводу обращения к элементам по ID, и что это центр вселенной...на самом деле это холиварный вопрос, у каждого свое мнение на него своё, можно долго спорить что использовать, приводя в доводы скорость доступа и влияние на "рендер" страницы. Та библиотека которую я пытаюсь сделать будет предназначена исключительно для создания приложений, а не для обычного веба, а раз так то на любой форме приложения желательно однозначно идентифицировать объекты, тот пример что я привел он очень абстрактный, к примеру я сделал таблицу у которой будет всего один ID но её код занимает 2000 строк кода на javascripte, и это при использовании jquery.

Если у кого еще есть критика не стесняйтесь а то опыта пока маловато, накосячу щас, потом разгребать будет сложнее.

Всем спасибо
Ответить с цитированием
  #4 (permalink)  
Старый 30.03.2011, 16:14
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,805

а почему так?
$(".MySquare").live("click", function(){
	   var obj=getObjById($(this).attr("id"));	 
   obj.showName();
});

так не работает?
$(".MySquare").live("click", function(){this.showName()});


Цитата:
не напрямую к тэгу, а к объекту
И вот это я не понял

И зачем метод getObjById, если $("#...") шустрее?
__________________
.

Последний раз редактировалось Skipp, 30.03.2011 в 16:17.
Ответить с цитированием
  #5 (permalink)  
Старый 30.03.2011, 16:19
Аспирант
Отправить личное сообщение для igrok Посмотреть профиль Найти все сообщения от igrok
 
Регистрация: 09.07.2010
Сообщений: 98

на этот вопрос будет проще ответить кодом

//изменим немного
function MyButton(id, text){
    this.click=function(){
    };
 
    $("<div id='" +id+ "' style='width: 50px; height: 50px;' class='MyButton'></div>").appendTo($("body"));
}
$(".MyButton").live("click", function(){
   var obj=getObjById($(this).attr("id"));
 
   obj.click();
});


//а теперь мы можем создать две кнопки без работы вручную с ДОМ, работая только с объектами
var btn1 = new MyButton("btn1", "Button1");
var btn2 = new MyButton("btn2", "Button2");

btn1.click=function(){
 alert("btn1");
};

btn2.click=function(){
 alert("btn2");
};


я просто хочу что пользователи библиотеки поменьше напрямую работали с ДОМ, в идеале им это вообще не должно быть нужно
Ответить с цитированием
  #6 (permalink)  
Старый 30.03.2011, 16:22
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,805

ладно, вы пока наверно не поймёте к чему я, с опытом придёт)))
__________________
.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите пожалуйста я новичок! NemzevDanil Общие вопросы Javascript 3 02.02.2011 18:23
Помогите пожалуйста я новичок! NemzevDanil Элементы интерфейса 0 01.02.2011 23:00
Отмена события preventDefault() , поясните пожалуйста namez jQuery 3 15.04.2010 13:54
Помогите пожалуйста разобраться Kupu4 Ваши сайты и скрипты 0 21.01.2010 09:44
Объясните пожалуйста значение символов после переменной Анатолий Общие вопросы Javascript 1 09.01.2009 02:50