我试图通过获取从 add() 方法返回的项目(它使用 get() 方法获得)并向其添加单击事件处理程序,从而使我添加到 jcarousel 对象的项目可点击,如下所示:
for(n = 0; n < response.link_colors.length; n++) {
item = carousel.add(n + 1, '<div style="background-color: ' + response.link_colors[n] + '; width: 75px; height: 75px;"> </div>' );
makeClickable(item, response.link_colors[n], 'linkcolor');
}
function makeClickable(item, selection, setting) {
item.attr("sel", selection);
item.click(function() {
eval("selections." + setting + " = $(this).attr('sel');");
if(setting == 'layout') {
$('#template_preview').show();
$('#extracted_selections').show();
}
reloadFrame();
});
}
这在 Chrome、Firefox 等中按预期工作。但 IE9 告诉我返回的项目不是对象,因此 attr() 方法无效。
查看 jCarousel 代码,我看到了 get 方法:
get: function(i) {
return $('>.jcarousel-item-' + i, this.list);
},
看起来很简单。我已经确认有一个具有适当类名的 LI 元素(例如 jcarousel-item-1),但即使this.list
它引用的对象(由 jcarousel 构造函数创建)根据 IE9 似乎也是无效的。
知道如何解决这个问题吗?
谢谢!