Как изменить эти события на .live() обработчик событий?.live() jQuery - как изменить мои события
Я думал, что могу просто изменить $ (document) .ready (function() ... to .... $ (document) .live (function(), а также .keydown и .data для .live, но я не могу заставить его работать ... Помогите пожалуйста.
$(document).ready(function(){
$('#number').bind('keyup change focus', function(){
var field = this;
timer = setTimeout(function(){runSearch(field);}, 444);});
$('#number').keydown(function(){clearTimeout(timer);});
//url selection by specifics
$('#phone_book tr').data('bgcolor', '#aaf').hover(function(){
var $this = $(this);
var newBgc = $(this).data('bgcolor');
$(this).data('bgcolor', $(this).css('background-color')).css('background-color', newBgc);
});
//url selection by specifics
$("#phone_book tr").click(function(){
var id = $(this).children().first().html();
var type = $(this).parents('table').siblings('div.module_header').html().toLowerCase();
Не меняйте .ready(). Вам нужно только изменить обработчики для элементов, которые не существуют после того, как страница была загружена изначально. Поэтому для каждого динамически добавленного элемента вам нужно будет заменить имя обработчика. НО: Вы должны использовать .on(), потому что скоро будет удален .live(). – devnull69
так .bind, .keydown, .data, .click все должно быть изменено на .on() – Supplement
.data() не является обработчиком событий и, следовательно, его не нужно изменять. .data() хранит или извлекает определенный набор данных в/из указанного объекта (ов) jQuery. – Derek