(我的代码也在这里:http: //jsbin.com/urupig/4/edit
“下一个”和“上一个”按钮有效,但“跳转”按钮无效。)
你好,我是 JavaScript 和 CoffeeScript 的新手。
我想提取“跳转”元素并想从 jQuery UI 菜单跳转到每个图像。
下面的代码使用 Flickr API 获取图像。首先,完成了 Ajax 通信并加载了图像的 URL。
我想跳转每个图像,但是当单击“跳转”元素的子元素时,“索引超出数字”被写入控制台。
HTML:
<body>
<ul id="menu">
<li><a href="#" id="next">Next</a></li>
<li><a href="#" id="previous">Previous</a></li>
<li>
<a href="#" id="jump">Jump</a>
<ul id="jump_ul">
</ul>
</li>
</ul>
<br />
<div id="images"></div>
</body>
咖啡脚本:
class PhotoTable2
json: null
number: null
constructor:(number) ->
@number = number
getData:(successCallback) =>
$.getJSON(
'http://www.flickr.com/services/rest/?jsoncallback=?'
format : 'json'
method : 'flickr.photos.search'
api_key : '7965a8bc5a2a88908e8321f3f56c80ea'
user_id : '29242822@N00'
per_page : @number
(data) =>
@json = data.photos.photo;
successCallback?())
url:(index) ->
item = @json[index]
itemFarm = item.farm
itemServer = item.server
itemID = item.id
itemSecret = item.secret
itemPathList =
'http://farm' + itemFarm + '.static.flickr.com/' + itemServer +
'/' + itemID + '_' + itemSecret + '_m.jpg'
putPhoto:(index) ->
if (0 <= index and index <= (@number - 1))
$('#images').empty()
$('#images').append(
$('<h3></h3>')
.text(@json[index].title)
$('<a></a>')
.append(
$('<img />')
.attr('src', @url(index))))
else
console.log('index is out of number')
console.log('index: ', index)
$ ->
index = 0
photo_table2 = new PhotoTable2(5)
photo_table2.getData(successCallback = ->
console.log('Data loaded',photo_table2.json)
photo_table2.putPhoto(index)
$('#next')
.click ->
index++
photo_table2.putPhoto(index)
$('#previous')
.click ->
index--
photo_table2.putPhoto(index)
for i in [0..(photo_table2.number - 1)]
$('#jump_ul').append(
$('<li></li>').append(
$('<a></a>')
.text(photo_table2.json[i].title)
.click ->
photo_table2.putPhoto(i)
console.log(i)
)
)
$("#menu").menu()
)
谢谢你的好意。