У меня есть несколько входов, которые я хотел бы обеспечить, чтобы были только целые числа. Новые браузеры понимают type = "number", но мы не живем в идеальном мире. Поскольку эти поля выбрасываются через несколько мест в системе, я хотел бы разработать решение JQuery (с использованием версии 1.7.1), которое я могу перечислить в массиве, и пропустить их на DOM и получить связь. Примечание, что некоторые из этих входов поступают из запросов AJAX, поэтому стандартный метод «on» не работает.Методы on/live/bind в цикле
$(document).live("keyup", "#myInput", function(){})
Работает нормально, однако не работает, если в петле.
Вышеупомянутая скрипка показывает элементы, работающие как ожидалось, но измените «.on» на «.live» или «.bind», и событие перестает связываться должным образом.
Итак, чтобы мой код был чистым и не требовал вручную связывать десятки этих элементов, как я могу заставить «.live» работать в цикле?
var arr = [
$("#myInput"),
$("#differentInput"),
$("#strangeText"),
$("#moreUniqueValues")
]
function callBack($el){
return function(){
$("div.result").text("you typed in "+ $el.selector);
}
};
$(function(){
for(var i = 0; i < arr.length; i++){
$(document).on("keyup", arr[i].selector, callBack(arr[i]));
$("div.loopText").append("<div>"+ arr[i].selector + " - has been bound </div>")
};
});
Пожалуйста, ваш код _here_. – hindmost
Метод 'live()' устарел: http://api.jquery.com/live/ –
.on работает так же, как .live (но более эффективно), если используется правильно. [Прочитайте документацию] (http://api.jquery.com). –