Я создаю портфолио фотографий для клиента и решил сделать его немного более интерактивным. Я избавился от всех кнопок на сайте и добавил, что пользователь взаимодействует с сайтом, используя ключевые штрихи. Мой первоначальный код:Как вы используете jquery .live() с нажатиями клавиш?
$(document).bind('keydown', function(e) {
но это, к сожалению, не позволит пользователю взаимодействовать с изображениями, загружаемыми через jquery. поэтому посетитель мог взаимодействовать только с первым изображением. Я огляделся и обнаружил, что метод .live() должен связывать событие со всеми объектами, загруженными при загрузке документа, или после факта. Но по какой-то причине он не работает с моим кодом. Я использую JQuery 1.4.2, и это образец кусок моего кода:
$(document).live('keydown', function(e) {
if (e.keyCode == 32) {
var imgwidth = $('#gallery img').attr('width');
if(imgwidth == 640) {
$('#content div#image').removeClass('large');
$('#content img').removeClass('large');
}else{
$('#content div#image').addClass('large');
$('#content img').addClass('large');
}
return false;
};
});
Любая помощь будет принята с благодарностью!
Часть imgwidth должна найти только первое изображение. У меня есть это там, чтобы определить состояние, которое было переключено или нет, поэтому вы можете нажать пробел один раз, чтобы увеличить задние изображения в #gallery, а затем снова избавиться от класса, который их увеличивает. #gallery div заменяется свежими изображениями каждый раз, когда пользователь нажимает клавиши со стрелками. Я бросил пример в Интернете: http://werchris.com/emily. У меня есть другие ключевые события в keypress, так что установка live() на #gallery img решит проблему? –
@Chris Anderson: у вас не должно быть нескольких элементов с одинаковым идентификатором (например, 'id =" image "') – sje397