2013-08-03 1 views
0

Lorsque j'essaie de détruire la div redimensionnable, la fonction hover sur .ui-resizable-se ne fonctionne pas. Je pense que je dois utiliser jquery live(). Mais je ne pouvais pas l'intégrer clairement.jQuery redimensionnable .Live()

Si vous passez la souris sur .ui-resizable-se ou .ui-resizable-e lors du chargement de la page, les fonctions fonctionneront, mais si vous passez à nouveau le curseur, rien ne se passera. Comment puis-je surmonter ce problème?

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

lien Source: http://jsfiddle.net/nNrgP/

+1

'live' est obsolète de la version 1.7 et a été supprimé en 1.9. Vous devriez utiliser ['on'] (http://api.jquery.com/on/) à la place. – kalley

Répondre

0

les survols ne fonctionnent pas après la première fois parce que vous avez appelé resizable("destroy"); appel que

supprime complètement la fonctionnalité redimensionnable. Cela retournera l'élément à son état pré-init.

Resizable Destroy

Si vous voulez que, pour être toujours disponible, vous devez soit basculer entre resizable("disable") et resizable("enable"), ou complètement ré-initialiser le redimensionnable div. Sans plus de connaissance de votre objectif (ou autre code), il est difficile de dire quelle est la meilleure option.

0

Vous pouvez aussi simplement mettre à jour le options:

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

Essayez d'utiliser la délégation de l'événement puisque vous pourriez avoir affaire à eleemnts dynamiques

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

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

Démo: Fiddle

+0

Juste en utilisant 'mouseenter' a résolu le problème. Merci beaucoup.. –