Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.03.2021, 22:25
Новичок на форуме
Отправить личное сообщение для petyann Посмотреть профиль Найти все сообщения от petyann
 
Регистрация: 02.03.2021
Сообщений: 4

Как привязать определённую кнопку к определённому скрипту
Здравствуйте.
Возник вопрос: как привязать определённую кнопку к определённому скрипту?
На странице имеются две кнопки <button> и два скрипта. Как сделать так, чтобы по каждому нажатию первой кнопки выполнялся только первый скрипт, а по каждому нажатию второй кнопки выполнялся только второй скрипт. Как это можно реализовать?
Вот, собственно, сам код. Сейчас при нажатии на любую кнопку выполняется действие только второго скрипта, и только один раз, после чего никакой реакции на нажатия не происходит. Если же один из скриптов удалить, то другой работает как надо, но только на первой кнопке. Но требуется, чтобы именно действие определённой кнопки было привязано к определённому скрипту.
Что и куда тут следует прописать?

Код:
   <button data-sort="-1">Сортировать по-мощности</button>
    <button data-sort="-1">Сортировать по цене</button>

		<script>
		// Фильтр
$('select').change(function(){
    $('.catitem').removeClass('hidden');
    var power = $(this).val();
    $('.catitem').each(function(){
        if($(this).data('power') != power && power > 0) {
            $(this).addClass('hidden');
        }
    });
});
// Сортировка
$('button').click(function(){
    if($(this).data('sort') == -1) {
        $(this).data('sort', 1);
    }else {
        $(this).data('sort', -1);
    }
    var listCat = $('.catitem');
    listCat.sort(function(a,b){
        return ($(a).data('power') - $(b).data('power')) * $('button').data('sort') ;
    });
    listCat.each(function(idx,itm){
        $('.catitems').append(itm);
    });
});

		</script>

		<script>
		// Фильтр
$('select').change(function(){
    $('.catitem').removeClass('hidden');
    var price = $(this).val();
    $('.catitem').each(function(){
        if($(this).data('price') != price && price > 0) {
            $(this).addClass('hidden');
        }
    });
});
// Сортировка
$('button').click(function(){
    if($(this).data('sort') == -1) {
        $(this).data('sort', 1);
    }else {
        $(this).data('sort', -1);
    }
    var listCat = $('.catitem');
    listCat.sort(function(a,b){
        return ($(a).data('price') - $(b).data('price')) * $('button').data('sort') ;
    });
    listCat.each(function(idx,itm){
        $('.catitems').append(itm);
    });
});
	  </script>

Последний раз редактировалось petyann, 02.03.2021 в 22:34.
Ответить с цитированием
  #2 (permalink)  
Старый 02.03.2021, 22:50
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 30,447

petyann,
придумать разные классы для разных кнопок, <button class="one">
<button class="to">

и будет
$('button.one').click
и
$('button.to').click
Ответить с цитированием
  #3 (permalink)  
Старый 02.03.2021, 23:08
Новичок на форуме
Отправить личное сообщение для petyann Посмотреть профиль Найти все сообщения от petyann
 
Регистрация: 02.03.2021
Сообщений: 4

Сообщение от рони Посмотреть сообщение
petyann,
придумать разные классы для разных кнопок, <button class="one">
<button class="to">

и будет
$('button.one').click
и
$('button.to').click
Ага. Сделал. Первая кнопка работает нормально, сортирует как надо. Но вторая кнопка теперь срабатывает только один раз, после чего не реагирует. Хотя если снова нажать первую кнопку, то вторя снова сработает, но только один раз.
Из-за чего так? Что можно предпринять?
P.S. Заметил, что если кнопки поменять местами, то именно та, которая стоит первой, работает нормально, а вторая срабатывает только один раз.

Последний раз редактировалось petyann, 02.03.2021 в 23:17.
Ответить с цитированием
  #4 (permalink)  
Старый 02.03.2021, 23:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 30,447

petyann,
https://javascript.ru/forum/jquery/8...tml#post529000
Ответить с цитированием
  #5 (permalink)  
Старый 02.03.2021, 23:55
Новичок на форуме
Отправить личное сообщение для petyann Посмотреть профиль Найти все сообщения от petyann
 
Регистрация: 02.03.2021
Сообщений: 4

Сообщение от рони Посмотреть сообщение
petyann,
https://javascript.ru/forum/jquery/8...tml#post529000
Только не совсем понимаю, как мой код под это переделать?
Ответить с цитированием
  #6 (permalink)  
Старый 03.03.2021, 00:07
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 30,447

petyann,
я могу только догадываться, что вы хотите сделать.
Ответить с цитированием
  #7 (permalink)  
Старый 03.03.2021, 01:33
Новичок на форуме
Отправить личное сообщение для petyann Посмотреть профиль Найти все сообщения от petyann
 
Регистрация: 02.03.2021
Сообщений: 4

Сообщение от рони Посмотреть сообщение
petyann,
я могу только догадываться, что вы хотите сделать.
Спасибо, вы очень помогли с классами. Всё заработало.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Очень нужен метод!, как можно определить нажатие на кнопку "Like" от FaceBook'a? Master_Romio Общие вопросы Javascript 13 09.02.2018 21:53
Как получить 2 id элемента? И привязать к ним новый panikajo Общие вопросы Javascript 6 12.12.2017 14:23
Как привязать активный чекбокс и блок внутри которого он находится? andreyChumak jQuery 1 20.07.2017 17:11
Как создать кнопку, чтобы она удаляла кусок кода? Djambulat Angular.js 1 10.07.2017 15:11
Как пометить чекбокс при нажатии на кнопку? vasyakrn Элементы интерфейса 5 03.04.2015 12:10