tl;dr: Pour direct swap de remplacement (comptes pour le chargement dynamique), voir l' Exemple Général ci-dessous.
Comme d'autres affiches ont noté, la accepté de répondre à des œuvres, mais $(#MainDiv')
des besoins doit être un "non-élément dynamique (pas en cours de chargement encore une fois grâce à l'ajax)". C'est préférable en terme de performance, comme la remontée d'événements "distance" est limitée. Dans l'exemple, il a seulement besoin de remonter jusqu'à celle du parent de l'élément à traiter.
La solution serait de se lier à la "mère-la plupart" des éléments qui ne va pas être rechargée via AJAX en général) - dans l'exemple, vous auriez besoin de lier $('#MainDiv')
s'parent.
Cependant,
Si vous ne voulez direct swap en remplacement de live()
, tout ce que vous devez faire est de lier à l' document
élément à la place.
Exemple Général
Format 1:
//Replace:
$(selector).live(events, handler); // Where `events` is a string
//With:
$(document) .on(events, selector, handler);
Format 2:
//Replace:
$(selector).live(events); // Where `events` is
// an object of `handler`s
//With: // (as in OP's example)
$(document) .on(events, selector);
A noter qu'avec l' on()
exemples,selector
s'conteneur(s) peut changer et la liaison sera automatiquement appliqué; les mêmes fonctionnalités que l' live()
.
OP Exemple:
//Deprecated live() version:
$('.MyTextBox').live({
mouseenter: function () { .... },
mouseleave: function () { .... },
blur: function () { ... }
});
//New on() version
$(document).on({
mouseenter: function () { .... },
mouseleave: function () { .... },
blur: function () { ... }
},'.MyTextBox');