簡體   English   中英

href javascript函數調用

[英]href javascript function call

我試圖在href上調用一個函數,但顯示的是未定義的函數,但是當我在專輯循環內調用該函數時,該函數本身正在運行。 追加href后還有其他方法可以調用該函數嗎? 我嘗試使用帶有錨ID的jquery onclick,但這也不起作用,也沒有錯誤。 知道我應該怎么打電話嗎?

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>

嘗試

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與鏈接放在同一文件中。 如果這樣可以解決問題,則包含錯誤。

像這樣:

<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){
    ...
}

如果是這樣,則需要使其可訪問。 這是有關模塊模式的一些信息 ,可能有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM