我正在为客户建立一个摄影作品集,并决定让它更具互动性。我摆脱了网站上的所有按钮,并让用户使用击键与网站进行交互。我使用的原始代码:
$(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;
};
});
非常感谢任何帮助!
答案 0 :(得分:0)
我认为问题不在于您绑定事件的方式。
在事件处理程序中,例如:
var imgwidth = $('#gallery img').attr('width');
这将为您提供第一张图片的宽度(请参阅attr文档)。
如何确定用户与哪个图像进行交互?如果它有焦点,那么你可以这样做。
$('#gallery img').live("keydown", function(e) {
// here, 'this' is the DOM image object, and $(this) is the jQuery object for it
// ...
});
...但重点是,您需要某种方式让计算机确定用户打算与哪个图像进行交互。