Javascript.RU

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

Запретить срабатывание действия по нажатию
Страница состоит из квадратов DIV'ного типа(воистину дивного!).
На блоки повешен onclick, который перенаправляет пользователя на другой адрес
Так же прикручен JQuery(+UI) плагин позволяющий переносить эти блоки на другое место левой кнопкой мыши (drag'n drop).

А теперь вопрос:
При переносе блоков, а браузерах Opera и Chrome после события не происходит перехода на новый адрес
В браузерах: Firefox и Safari после переноса блока срабатывает событие onclick

Каким образом заблокировать выполнение onclick при переносе блоков? Есть ли такая команда?

И еще вопрос. В браузере IE10 не работает перенос блоков. Это только у меня или так и должно быть?

Пример drag'n drop

Последний раз редактировалось supermike, 22.06.2013 в 07:30.
Ответить с цитированием
  #2 (permalink)  
Старый 22.06.2013, 16:46
Новичок на форуме
Отправить личное сообщение для ultracomp Посмотреть профиль Найти все сообщения от ultracomp
 
Регистрация: 22.06.2013
Сообщений: 2

Вы бы код показали...
Ответить с цитированием
  #3 (permalink)  
Старый 22.06.2013, 21:56
Новичок на форуме
Отправить личное сообщение для supermike Посмотреть профиль Найти все сообщения от supermike
 
Регистрация: 22.06.2013
Сообщений: 7

Сообщение от ultracomp Посмотреть сообщение
Вы бы код показали...
$(document).ready(function(){
	$(function() {
		$("#list").sortable({ opacity: 0.6, cursor: "move", update: function() {
			var order = $(this).sortable("serialize") + "&action=updateRecordsListings";
			$.post("/index.php", order);
		}
		});
	});
});

используется jquery ui 1.7.1
и собственно jquery

<div class="sites" id="list">

<div id="recordsArray_463" class="box" title="" onmouseout="document.getElementById('2').style.opacity = '0.0';" onmouseover="document.getElementById('2').style.opacity = '0.9';" onclick="location.href='http://allbest.ru';"style="background:black url('./thumbnails/1369328664_2013-05-23-200.jpg');">
    <div class="buttons" id="2">
        <a class="edit_site" href="edit_site.php?id=463">
            <img src="./img/settings3.png" />
        </a>
        <a class="delete_site" href="?category=&deleteSiteId=463">
            <img src="./img/stop_white_2.png"/>
        </a>
    </div>
        <div class="title" style="z-index: 1; position:relative;">Доклады</div>
</div>

</div>

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

Вот сама страница
Вложения:
Тип файла: zip Desktop.zip (56.6 Кб, 1 просмотров)
Ответить с цитированием
  #5 (permalink)  
Старый 22.06.2013, 22:25
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

Попробуйте так
по событию dragstart на на елементе присваиваем какой-то переменной v=1;
при клике проверяем если v==1 то return
по событию mouseup на body v=0;
Ответить с цитированием
  #6 (permalink)  
Старый 23.06.2013, 08:18
Новичок на форуме
Отправить личное сообщение для supermike Посмотреть профиль Найти все сообщения от supermike
 
Регистрация: 22.06.2013
Сообщений: 7

Спасибо за ответ. Смысл понял, начал искать подробности о событиях dragstart и попутно нашел вот такую вещь event.cancelBubble = true; - это в дополнение к вашей идее.
т.к. я почти не знаю JS, а сейчас времени нет разбираться, пока что прицепил это действие на title, чтобы можно было перетягивать элементы за заголовок. Вернусь к решению проблемы позже, как появится время.
Ответить с цитированием
  #7 (permalink)  
Старый 23.06.2013, 11:23
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

Сообщение от supermike
нашел вот такую вещь event.cancelBubble = true; - это в дополнение к вашей идее.
event.cancelBubble = true;-это для IE для остальных stopPropagation
обычно так пишут
if(event.stopPropagation)event.stopPropagation();else event.cancelBubble = true;
Ответить с цитированием
  #8 (permalink)  
Старый 23.06.2013, 15:31
Новичок на форуме
Отправить личное сообщение для supermike Посмотреть профиль Найти все сообщения от supermike
 
Регистрация: 22.06.2013
Сообщений: 7

Сообщение от vadim5june Посмотреть сообщение
event.cancelBubble = true;-это для IE для остальных stopPropagation
обычно так пишут
if(event.stopPropagation)event.stopPropagation();else event.cancelBubble = true;
Спасибо, буду знать. Удивительно, но в FireFox и Safari cancelBubble прокатил.
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как запретить js код. Vladislav Общие вопросы Javascript 3 23.02.2013 17:03
Остановка выполнения скрипта до определенного действия пользователя. Matisumi Общие вопросы Javascript 3 28.01.2013 00:21
запретить срабатывание события дочернего элемента, при перемещении родительского Danil jQuery 4 09.10.2011 10:53
Как можно в DIV_е с включенным contentEditable запретить использовать <SCRIPT> и <A>? Маэстро Events/DOM/Window 11 02.07.2011 20:00