Показаны сообщения с ярлыком jQuery. Показать все сообщения
Показаны сообщения с ярлыком jQuery. Показать все сообщения

пятница, 4 апреля 2008 г.

Prevent text selection или отмена выделения текста

При разработке клиентской части приложения иногда нужно отменить выделение текста, которое делает браузер при двойном клике на элементе или при drag'n'drop.
Этого можно избежать, используя объект document.selection.
Пишем простую функцию, которая отменяет выделение текста и задаем ее на соответствующее событие:

function clearSelection()
{
var sel;
if(document.selection && document.selection.empty)
{
document.selection.empty();
}
else if(window.getSelection)
{
sel = window.getSelection();
if(sel && sel.removeAllRanges)
sel.removeAllRanges();
}
}Syhi-подсветка кода



А еще проще (и лучше ;-) - используем jQuery плагин jQuery Disable Text Select Plugin http://www.jdempster.com/2007/07/14/jquery-disable-text-select/

Подключаем единственный файл jquery.disable.text.select.js и задаем отмену выделения текста для нужных элементов:

$("#wrapper").disableTextSelect();Syhi-подсветка кода








среда, 2 апреля 2008 г.

jQuery Обработка щелчка правой кнопки мыши

Долго возился, никак не мог найти как задать этот обработчик. Я использую livequery plugin.
Задать обработку можно так:

$(".pixel").livequery('contextmenu', function(){
    // do something ...       

    return false;
});Syhi-подсветка кода




среда, 5 марта 2008 г.

jQuery binding events problem

При использовании ajax запросов и изменении DOM дерева налету не всегда срабатывают функции-обработчики событий для добавленных элементов в документе. Пример:

// Получаем html код и вставляем его в div
$("#grid_toolbar").load("./ajax/toolbar_menu/users.inc");

// Задаем обработчик для нового элемента
$("#delete").click(function() {
$("#grid").empty();
});Syhi-подсветка кода


Такой способ, к сожалению, не будет работать.
В этой ситуации поможет специальный плагин livequery: http://docs.jquery.com/Plugins/livequery

Подключаем единственный файл jquery.livequery.js и переписываем код:

// Загружаем также ;-)
$("#grid_toolbar").load("./ajax/toolbar_menu/users.inc");

// А здесь уже задаем обработчики при помощи livequery
$("#delete").livequery('click', function(event) {
    $("#grid").empty();
});Syhi-подсветка кода




вторник, 4 марта 2008 г.

Javascript ошибки

Сейчас разруливаю jQuery framework - отличная разработка! Много готовых и расширяемых инструментов. Не мог разобраться с одной ошибкой около часа. В итоге понял, в чем дело... поэтому пишу заметку в блог: если ищешь javascript ошибку больше, чем полчаса - посмотри в правильном ли порядке ты подключаешь скрипты !!!