Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.01.2017, 19:09
Новичок на форуме
Отправить личное сообщение для Magician Anthony Посмотреть профиль Найти все сообщения от Magician Anthony
 
Регистрация: 14.01.2017
Сообщений: 5

Как подружить selectable и click() по элементу?
Добрый вечер!
Есть такой кусок html-кода:
<div class="row-directories">
    <div class="directory"></div>
    <div class="directory"></div>
    <div class="directory"></div>
</div>

И такой кусок js-кода:
$('.row-directories').selectable({
    filter: ".directory"
}).on('click', '.directory', function() {
    alert('Click.');
});

В данном случае selectable срабатывает (при клике на элемент совершается его выделение), но мой обработчик, который я повесил на клик по этому элементу, напрочь игнорируется. Вопрос: как мне их подружить? Чтобы срабатывало и выделение элемента, и мой обработчик клика.
Ответить с цитированием
  #2 (permalink)  
Старый 14.01.2017, 19:39
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

Magician Anthony,
вы что-то не договариваите ...
<!DOCTYPE html>

<html lang="en">
<head>
  <meta charset="utf-8">

  <title>selectable demo</title>
  <script src="http://code.jquery.com/jquery-1.9.1.js">
</script>
  <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js">
</script>
  <style>
    .row-directories .ui-selecting { background: #FECA40; }
    .row-directories .ui-selected { background: #F39814; color: white; }

  </style>
  <script>
  $(function() {
       $('.row-directories').selectable({
    filter: ".directory"
}).on('click', '.directory', function() {
    alert('Click.');
});

    });
  </script>
</head>

<body>
  <div class="row-directories">
    <div class="directory">1</div>
    <div class="directory">2</div>
    <div class="directory">3</div>
</div>

</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 14.01.2017, 21:27
Новичок на форуме
Отправить личное сообщение для Magician Anthony Посмотреть профиль Найти все сообщения от Magician Anthony
 
Регистрация: 14.01.2017
Сообщений: 5

Вы мне не поверите, но у меня срабатывает только в том случае, когда я на этом элементе выделяю кусок (этого же элемента) в правую сторону. То есть клик срабатывает не при клике, а при выделении области на этом элементе. А тут, на форуме, работает без проблем. Не подскажете, чем может быть вызвана данная проблема?

Последний раз редактировалось Magician Anthony, 15.01.2017 в 02:19.
Ответить с цитированием
  #4 (permalink)  
Старый 15.01.2017, 01:39
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

Magician Anthony,
другой код мешает ... без проблемного примера, можно только гадать
Ответить с цитированием
  #5 (permalink)  
Старый 15.01.2017, 12:48
Новичок на форуме
Отправить личное сообщение для Magician Anthony Посмотреть профиль Найти все сообщения от Magician Anthony
 
Регистрация: 14.01.2017
Сообщений: 5

В общем, проблема была в jquery-ui.css, который мешал этому. Вернее, класс ui-selectable-helper, который отвечает за выделение области. Если удалить этот класс, то клики нормально одновременно работают. Если добавить стиль обратно - так, как я написал. В чём может быть дело?
Вот ссылка на пример - https://jsfiddle.net/d9hj8qfb/
Вначале попробуйте клик, а потом выделите область вправо на самом элементе.

Последний раз редактировалось Magician Anthony, 15.01.2017 в 12:58.
Ответить с цитированием
  #6 (permalink)  
Старый 15.01.2017, 13:41
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

Magician Anthony,
добавить в css
.ui-selectable-helper{
  z-index: -100;
}
Ответить с цитированием
  #7 (permalink)  
Старый 15.01.2017, 13:43
Новичок на форуме
Отправить личное сообщение для Magician Anthony Посмотреть профиль Найти все сообщения от Magician Anthony
 
Регистрация: 14.01.2017
Сообщений: 5

рони,
Тогда области выделения не видно, хоть и работает.
Ответить с цитированием
  #8 (permalink)  
Старый 15.01.2017, 13:46
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

Magician Anthony,
тогда так
.ui-selectable-helper{
   margin-left: 9px;
}
Ответить с цитированием
  #9 (permalink)  
Старый 15.01.2017, 15:01
Новичок на форуме
Отправить личное сообщение для Magician Anthony Посмотреть профиль Найти все сообщения от Magician Anthony
 
Регистрация: 14.01.2017
Сообщений: 5

рони,
Тогда уже margin-left: 1px; :-)
---
Спасибо большое за помощь) Странная проблема, правда.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как программно присвоить id элементу <div> jeel Events/DOM/Window 10 07.06.2014 15:21
Как луче привязать объект к элементу страницы domius Ваши сайты и скрипты 3 15.05.2014 21:34
Как обратиться к элементу по ID через переменную? pashin76 jQuery 2 07.03.2014 19:51
Как присвоить класс элементу после проверки cookies Round jQuery 20 17.10.2013 09:47
Как добавить класс к нужному элементу при наведении на определеные ссылки? crazygangster77 Events/DOM/Window 3 05.06.2013 02:19