我从我正在使用的收藏夹Wordpress插件中获得Uncaught TypeError: Cannot read property 'posts' of undefined
。我试过问插件的创建者,但没有得到回应。
错误来自此功能:
plugin.setButtonData = function()
{
plugin.data.postid = $(plugin.activeButton).attr('data-postid');
plugin.data.siteid = $(plugin.activeButton).attr('data-siteid');
plugin.data.favorite_count = $(plugin.activeButton).attr('data-favoritecount');
plugin.data.site_index = plugin.utilities.siteIndex(plugin.data.siteid);
plugin.data.site_favorites = Favorites.userFavorites[plugin.data.site_index].posts;
if ( plugin.data.favorite_count <= 0 ) plugin.data.favorite_count = 0;
}
我把问题缩小到plugin.data.site_index
(倒数第二行)返回未定义的问题。如果我用硬编码1替换它,则错误消失。
plugin.data.site_index
由以下函数生成,原始问题必须是:
plugin.siteIndex = function(siteid)
{
for ( var i = 0; i < Favorites.userFavorites.length; i++ ){
if ( Favorites.userFavorites[i].site_id !== parseInt(siteid) ) continue;
return i;
}
}
不幸的是我不知道这里会出现什么问题。请注意,我正在使用Wordpress Multisite环境(该插件支持)。
您可以看到完整的JS代码here。
答案 0 :(得分:0)
更换
plugin.data.site_favorites = Favorites.userFavorites[plugin.data.site_index].posts;
到
plugin.data.site_favorites = plugin.data.site_index >= 0 ?
Favorites.userFavorites[plugin.data.site_index].posts : '';
你的代码可以正常工作。
我猜是plugin.siteIndex(siteid) return undefined
出现问题的情况。