/ / Zdarzenie Click nie uruchamia się przy użyciu dynamicznie tworzonych przycisków - javascript, jquery

Zdarzenie kliknięcia nie uruchamia się z dynamicznie tworzonymi przyciskami - javascript, jquery

Dynamicznie utworzyłem przyciski w div. I powiązanie kliknięcia i innych zdarzeń dla przycisków. Ale problem polega na tym, że zdarzenie kliknięcia uruchomiło tylko jeden przycisk pierwszego kliknięcia. Dzieje się tak samo w przypadku innych wiążących zdarzeń. Przykładowy kod to

 $("#divButtons input[type=button]").each(function () {
$(this).bind("mouseover", function (e) {
// some work
}).bind("mouseout", function (e) {
// some work
}).bind("click", function (e) {
// some work
});
});

Działa dobrze, gdy jest włączony document.ready() Ale w moim przypadku przyciski utworzone daleko po DOM gotowe.

Chcę też wiedzieć, dlaczego tak się zachowuje ...?

Odpowiedzi:

5 dla odpowiedzi № 1

Jeśli używasz jQuery 1.7+, wybierz on () i naprawdę nie ma potrzeby korzystania z nich ():

$(document).on({
mouseover: function(e) {
// some work
},
mouseout: function(e) {
// some work
},
click: function(e) {
// some work
}
}, "#divButtons input[type=button]");

zamień dokument na najbliższy niedynamiczny element dla delegowanej procedury obsługi zdarzeń.