jQuery с изменяемым размером .Live()

Когда я пытаюсь уничтожить div с изменяемым размером, функция наведения на .ui-resizable-se не работает. Я думаю, что мне нужно использовать jquery live(). Но я не мог интегрировать это четко.

Если вы наведете курсор на .ui-resizable-se или .ui-resizable-e при загрузке страницы, функции будут работать, но если вы наведете курсор еще раз, ничего не произойдет. Как я могу преодолеть эту проблему?

  $('#resizable').resizable({
    aspectRatio:false
  });
  $('.ui-resizable-se').hover(function(){
    keep("resizable");
  });
  $('.ui-resizable-e').hover(function(){
    dontKeep("resizable");
  });

Ссылка на источник: http://jsfiddle.net/nNrgP/


person Adam Croth    schedule 03.08.2013    source источник
comment
live устарел с версии 1.7 и был удален в 1.9. Вместо этого следует использовать on.   -  person kalley    schedule 03.08.2013


Ответы (3)


Ховеры не работают после первого раза, потому что вы позвонили resizable("destroy");

Полностью удаляет функцию изменения размера. Это вернет элемент обратно в состояние до инициализации.

Удаление с изменяемым размером

Если вы хотите, чтобы это все еще было доступно, вы должны либо переключаться между resizable("disable") и resizable("enable"), либо полностью повторно инициализировать изменяемый размер div. Без дополнительных знаний о вашей цели (или другом коде) трудно сказать, какой вариант лучше всего.

person ethorn10    schedule 03.08.2013

Вы также можете просто обновить options:

function dontKeep(val){
    $("#"+val).resizable("option", 'aspectRatio', false);
    alert("dont keep");
}
function keep(val){
    $("#"+val).resizable("option", 'aspectRatio', true);
    alert("keep");
}
person kalley    schedule 03.08.2013

Попробуйте использовать делегирование событий, так как вы можете иметь дело с динамическими элементами.

$(document).on('mouseenter mouseleave', '.ui-resizable-e', function(){
    dontKeep("resizable");
});

$(document).on('mouseenter mouseleave', '.ui-resizable-se', function(){
    keep("resizable");
});

Демонстрация: Fiddle

person Arun P Johny    schedule 03.08.2013