Что значит "сбросить оформление на стандартное" ?

Рейтинг: 0Ответов: 2Опубликовано: 03.01.2015

При двойном клике нужно "сбросить" изменения.

$("#but1").click(function() {
    $("#par1").css({
        "color":"green",
        "font-size":"20px"
    });
});

$("but1").dblclick(function() { 
    $("#par1").css({
        "color":"",
        "font-size":""
    });
});

Ответы

▲ 1Принят

Сам код удаления стилей у вас рабочий, но как заметил Deonis, вы используете неверный селектор. А вообще, навешивание обработчика click и dblclick на один и тот же элемент нежелательная практика. Посудите сами - каждый двойной клик это два обычных. В какой момент два клика будут считаться двойным (dblclick), зависит от браузера, ОС, да и просто настроек пользователя. Делать такие вещи не рекомендуется, о чем и предупреждают в официальной документации:

It is inadvisable to bind handlers to both the click and dblclick events for the same element. The sequence of events triggered varies from browser to browser, with some receiving two click events before the dblclick and others only one. Double-click sensitivity (maximum time between clicks that is detected as a double click) can vary by operating system and browser, and is often user-configurable.

Также можно сделать свой велосипед для двойного клика: JSFiddle

HTML

<div id="par1">some text</div>
<button id="but1">toggle style</button>

JS

$(function() {

    $('#but1').on("click", function(e) {

        var $this = $(this),
            clicks = $this.data('clicks') || 0,
            timer = $this.data('timer'),

            // Время ожидания второго клика
            delay = 500;

        $this.data('clicks', ++clicks);

        if(clicks === 1) {

            $this.data('timer', setTimeout(function() {

                // Обычный клик
                $("#par1").css({
                    "color":"green",
                    "font-size":"20px"
                });

                $this.data('clicks', 0);
            }, delay));

        } else {
            clearTimeout(timer);

            // Двойной клик
            $("#par1").css({
                "color": '',
                "font-size": ''
            });

            $this.data('clicks', 0);
        }

    })
    .on("dblclick", function(e) {
        // Запрещаем стандартный двойной клик
        e.preventDefault();
    });

});
▲ 1

@Körg, во-первых, вы не верно указали селектор для двойного клика - пропустили решетку (#). А "сбросить оформление на стандартное" - я так понимаю, что нужно удалить/очистить те стили, которые вы добавляли динамически и которые записываются в атрибут style. При этом элемент принимает стили, которые ему были заданы изначально в CSS.