我试图在href上调用一个函数,但它显示未定义的函数,但是当我在专辑循环中调用它时函数本身正在工作。是否有其他方法在追加href后调用该函数?我尝试使用jquery onclick与锚的id,但这也不起作用,并没有错误。知道我该怎么打电话吗?
function getPhotosByAlbumID(albumID){
FB.api('/'+ albumID + '/photos',{ limit: 5000, fields: 'source' }, function(photos) {
$(photos.data).each(function(index, value){
console.log(value.source);
});
});
}
FB.api('/me/albums',{ limit: 5000, fields: 'id,name,count,cover_photo,link' }, function(me_album) {
$(me_album.data).each(function(index, value){
FB.api('/'+value.id+'/picture',{ limit: 5000 }, function(picture) {
$('#facebook-cover').append('<li id="'+value.id+'"><a href="javascript:getPhotosByAlbumID('+value.id+');" id="album"><img src="'+picture.data.url+'" /></a></li>');
});
});
});
错误:未捕获的ReferenceError:未定义getPhotosByAlbumID
所有附加都是这样..
<ul id="facebook-cover">
<li id="4758611198834"><a href="javascript:getPhotosByAlbumID(4758611198834);" id="album"><img src="image-link"></a></li>
</ul>
答案 0 :(得分:1)
试
var li=$('<li id="'+value.id+'"></li>');
var anchor=$('<a href="#" id="album"></a>');
anchor.click(function(){
getPhotosByAlbumID(value.id);
return false;
});
var img=$('<img src="'+picture.data.url+'" />');
anchor.append(img);
li.append(anchor);
这样您的点击事件必须有效。除非getPhotosByAlbumID()中有任何错误; 你也可以从同一个函数返回false
答案 1 :(得分:0)
我的猜测是js文件未正确包含在html所在的页面中。测试这是否是问题的一种简单方法是将javascript放在与链接相同的文件中。如果这样可以解决问题,则会出现包含错误。
像这样:
<script type="text/javascript">
function getPhotosByAlbumID(albumID){
FB.api('/'+ albumID + '/photos',{ limit: 5000, fields: 'source' }, function(photos) {
$(photos.data).each(function(index, value){
console.log(value.source);
});
});
}
FB.api('/me/albums',{ limit: 5000, fields: 'id,name,count,cover_photo,link' }, function(me_album) {
$(me_album.data).each(function(index, value){
FB.api('/'+value.id+'/picture',{ limit: 5000 }, function(picture) {
$('#facebook-cover').append('<li id="'+value.id+'"><a href="javascript:getPhotosByAlbumID('+value.id+');" id="album"><img src="'+picture.data.url+'" /></a></li>');
});
});
});
</script>
<ul id="facebook-cover">
<li id="4758611198834"><a href="javascript:getPhotosByAlbumID(4758611198834);" id="album"><img src="image-link"></a></li>
</ul>
答案 2 :(得分:0)
我注意到你的JS代码中最初有大量的缩进。您的getPhotosByAlbumID
功能可能在其他功能中吗?像这样:
var module = (function () {
...
function getPhotosByAlbumID(albumID){
...
}
如果是这样,您需要让它可访问。这是some info on the module pattern可能有用。