Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.12.2015, 17:05
Аспирант
Отправить личное сообщение для Floyd Посмотреть профиль Найти все сообщения от Floyd
 
Регистрация: 20.05.2014
Сообщений: 40

что правильнее: куча .on() или куча hasClass()?
есть кнопки: "добавить", "изменить", "удалить".
<button class="add action" type="button">+</button>
<button class="edit action" type="button">/</button>
<button class="del action" type="button">-</button>

при нажатии обрабатываются параметры, после чего запрос в базу.
как правильнее: привязать on на все кнопки:
.on("click", "button.add", function(event) {
	...			
})
.on("click", "button.edit", function(event) {
...			
})
.on("click", "button.del", function(event) {
	...			
})
.on("click", "button.action", function(event) {
	ajax(...);
})

или один .on и куча hasClass:
.on("click", "button.action", function(event) {
o_this = $(this);
if (o_this.hasClass("add")) {
	...
}
if (o_this.hasClass("edit")) {
	...
}
if (o_this.hasClass("del")) {
	...
}
ajax(...);

})

?
может есть более интеллигентное решение для такой задачи?
спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 01.12.2015, 17:27
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

<div id="action">
    <button class="add" type="button">+</button>
    <button class="edit" type="button">/</button>
    <button class="del" type="button">-</button>
</div>

$("#action").on("click", "button", function(){
alert(this.className);
});

Так лучше будет

Последний раз редактировалось Vlasenko Fedor, 01.12.2015 в 17:30.
Ответить с цитированием
  #3 (permalink)  
Старый 01.12.2015, 17:49
Аспирант
Отправить личное сообщение для Floyd Посмотреть профиль Найти все сообщения от Floyd
 
Регистрация: 20.05.2014
Сообщений: 40

у меня именем класса определяется какие именно параметры и как собирать. в кнопке бывает 1-2 класса для этого и 1-2 класса для CSS.
Ответить с цитированием
  #4 (permalink)  
Старый 01.12.2015, 19:25
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Floyd
button class="add action" type="button"
А какой иной тип кроме button еще может быть у кнопки? В данном случае указание типа бессмысленно.
Ответить с цитированием
  #5 (permalink)  
Старый 01.12.2015, 21:16
Аватар для Barbos
Новичок на форуме
Отправить личное сообщение для Barbos Посмотреть профиль Найти все сообщения от Barbos
 
Регистрация: 16.11.2015
Сообщений: 7

Я бы сделал три варианта на клик трех разных кнопок. В каждом сначала собрал данные для ajax запроса(или определил отдельную функцию, если код повторяется), а затем вызвал определенную функцию с этими параметрами, которая делает ajax запрос.
.on("click", "button.add", function(event) {
// сбор данных
	...	
sendAjax(param);
})
.on("click", "button.edit", function(event) {
// сбор данных
	...	
sendAjax(param);		
})
.on("click", "button.del", function(event) {
// сбор данных
	...	
sendAjax(param);		
})

function sendAjax(param){
...
}

Последний раз редактировалось Barbos, 01.12.2015 в 21:35.
Ответить с цитированием
  #6 (permalink)  
Старый 02.12.2015, 11:39
Аспирант
Отправить личное сообщение для Floyd Посмотреть профиль Найти все сообщения от Floyd
 
Регистрация: 20.05.2014
Сообщений: 40

так почти и сделано.
вопрос в том, что оптимальнее: вешать несколько делегированных обработчиков, ждущих всё время появления и нажатия подходящих кнопок, или один обработчик, а внутри разрулить hasClassами?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поюзайте хомячка Nanto Ваши сайты и скрипты 30 06.06.2011 22:16
Что лучше: библиотека или чистый JS? `p r o x y Библиотеки/Тулкиты/Фреймворки 4 26.11.2010 11:16
Стоит ли учить JS? Или что то другое? aleks_valery Элементы интерфейса 1 06.08.2010 19:33
Что лучше self.open или window.open ? и почему? alb Events/DOM/Window 3 28.07.2010 20:53
Что лучше, display или visibility? FirstFrost Общие вопросы Javascript 1 21.07.2010 05:42