javascript函数调用


href javascript function call

我试图在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>'); 
        });
    });
}); 

错误:Uncaught ReferenceError: getPhotosByAlbumID未定义

所有的像这样附加…

<ul id="facebook-cover">
<li id="4758611198834"><a href="javascript:getPhotosByAlbumID(4758611198834);" id="album"><img src="image-link"></a></li>   
</ul>

try

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

我的猜测是js文件没有正确地包含在html所在的页面中。测试这是否是问题的一个简单方法是将javascript与链接放在同一个文件中。如果这解决了问题,则出现include错误。

一样:

<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> 

我注意到你最初在JS代码中有大量的缩进。你的getPhotosByAlbumID函数是否在其他函数中?像这样:

var module = (function () {
    ...
    function getPhotosByAlbumID(albumID){
    ...
}

如果是这样,您需要使其可访问。这里有一些关于模块模式的信息,可能会有用。