我做错了吗?或者有更好的方法吗?
这是我的代码:
//Create as many li's as needed
for(var t = 1; t <= pageLimit; t++) {
if (t <= 9) {
$('ul.thumb-list').append('<li><p>PAGE ' + t + '</p><img id="' + t + '" src="../jpeg/thumbnails/0' + t + '.jpg" /></li>');
} else if (t >=10) {
$('ul.thumb-list').append('<li><p>PAGE ' + t + '</p><img id="' + t + '" src="../jpeg/thumbnails/' + t + '.jpg" /></li>');
}
// for each li that gets click, produce a click function that will get its id
$('ul.thumb-list li').each(function() {
$(this).click(function() {
var currId = $(this).attr('id');
//Testing to see if it is right
alert('currId is: ' + currId);
if(currId <=9){
$('#page' + currId).empty();
$('#page' + currId).append('<img class="touch" src="../jpeg/pages/0' + currId + '.jpg"/>');
} else if (currId >=10) {
$('#page' + currId).empty();
$('#page' + currId).append('<img class="touch" src="../jpeg/pages/' + currId + '.jpg"/>');
}
jQT.goTo($('#page' + currId), 'slide');
});
});
}
我的主要问题是我是否正确设置了点击和每项功能..还是应该采用另一种方式?
此外,我的提醒也不会显示currId。有什么理由吗?
答案 0 :(得分:4)
首先,你不需要每一个。你可以这样做:
$('ul.thumb-list li').click(function(){
// function body
});
其次,您要添加到列表中的列表项上没有ID。这是设置了ID的图像。
我认为你想要的代码类似于:
$('ul.thumb-list li').click(function(){
var currId = $('img', this).attr('id');
alert('currId is: ' + currId);
// rest of your code
});
答案 1 :(得分:0)
如果您希望能够点击多个标记,则应使用
$('tag').live('click', function(){
});
效率更高,但如果你只有1个标签需要能够点击(比如说ID),那么.click()应该没问题。