2013-08-03 4 views
0

Когда я пытаюсь уничтожить изменчивый div, функция hover на .ui-resizable-se не работает. Я думаю, что мне нужно использовать jquery live(). Но я не мог четко его интегрировать.jQuery resizable .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/

+1

'live' нежелателен версии 1.7 и был удален в 1.9. Вместо этого вы должны использовать ['on'] (http://api.jquery.com/on/). – kalley

ответ

0

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

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

Resizable Destroy

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

0

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

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

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

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

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

Демо: Fiddle

+0

Решив проблему, просто используя «mouseenter». Большое спасибо.. –