Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Обработка перетаскивания как нажатие. Помогите сделать (https://javascript.ru/forum/dom-window/21406-obrabotka-peretaskivaniya-kak-nazhatie-pomogite-sdelat.html)

aqwerty 08.09.2011 11:38

Обработка перетаскивания как нажатие. Помогите сделать
 
Помогите, пожалуйста, решить задачу. Я новичок в javascript. Хочу сделать, чтобы событие перетаскивания картинки обрабатывалось как нажатие на неё. Можно ли так сделать? Поддержка всех браузеров не нужна, только Google Chrome.
Вот такой код не работает:
$('img').bind('dragstart', function(event) {
event.preventDefault();
this.click();
});
Мне нужно то же самое, только работающее :) Подскажите, пожалуйста!

da_ff 08.09.2011 12:35

this.click();
замените
$(this).trigger('click', [event]);

aqwerty 08.09.2011 12:49

Ещё раз повторю, что я новичок и очевидных для Вас вещей могу не знать. Я попробовала этот вариант и ещё попробовала
$(this).trigger('click', event);

Ни одно не работает :(
Я что-то упустила?

da_ff 08.09.2011 13:06

aqwerty,
А требуется выполнить повешенные на клик по этой картинке события? Если так, то должно работать. Второй параметр должен быть именно
[event]

Опишите что требуется, думаю вы не так что-то делаете.

aqwerty 08.09.2011 13:34

Да, при перетаскивании требуется выполнять те же действия, что и по клику. Как правило, там проиходит либо переход на следующую страницу, либо проверка данных и последующий переход.
По клику это всё работает. Сама функция работает, вот эта:
$('img').bind('dragstart', function(event) { 
event.preventDefault();
});
. То есть я вставляла туда alert, он выводился. Я просто не знаю, как ещё проверять. Функция, которая должна выполняться по клику, многократно оттестирована и тоже работает.

aqwerty 08.09.2011 13:43

Извиняюсь. Я просто блондинка :( Если на клик по картинке описана функция, то она действительно работает и перетаскиванием выполняется так же, как кликом. Но есть ещё такие картинки, где никаких функций по клику не предусматривается, там просто прописана ссылка для перехода. Таких большинство. В этом случае не работает. Видимо, потому что функция не вызывается? Подскажите, пожалуйста, как сделать, чтобы и это сработало? Переход по ссылке тоже упрятать в функцию $("элемент").click(function(){//код}; или есть ещё способ?

da_ff 08.09.2011 14:43

Вообще если img вложен в a, то должен быть переход по ссылке. Попробуйте тогда
var href = $(this).trigger('click', [event]).parents('a:first').attr('href');
if (href) {
  window.location.href = href;
}

aqwerty 08.09.2011 14:51

работает!!! спасибо огромное!!!!!!!!!!!!!


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