(function ($) {
'use strict';
var url = window.location.href.split('#')[0];
var post = $('.post').children('a[name]').attr('name');
var helpers = {
"defaults": {
"post": post,
"href": url+'#',
"send": 'true',
"layout": 'button_count',
"width": '125',
"faces": 'false',
"font": 'verdana',
"action": 'like',
"scheme": 'light',
},
"init": function (options) {
var settings = $.extend({}, helpers.defaults, options),
easyface = $('<div />').addClass('easyface fb-like').attr({
"data-href": settings.href + settings.post,
"data-send": settings.send,
"data-layout": settings.layout,
"data-width": settings.width,
"data-show-faces": settings.faces,
"data-font": settings.font,
"data-action": settings.action,
"data-colorscheme": settings.scheme
});
return this.each(function (i, elem) {
var self = $(elem),
data = self.data('easyface');
if (!data) {
self.data('easyface', easyface);
self.append(easyface);
}
});
},
"destroy": function () {
return this.each(function (i, elem) {
var self = $(this),
data = self.data('easyface'); // test to see if we've already called init on this element
$(window).unbind('.easyface'); // unbind any namespaced events, assuming you've namespaced them like "click.easyface"
self.removeData('easyface'); // remove the data flag
self.find('.easyface').remove(); // remove the appended div
});
}
};
//define the method "easyface"
$.fn.easyface = function (method) {
if (helpers[method]) {
// call the method and pass in the settings
return helpers[method].apply(this, Array.prototype.slice.call(arguments, 1));
} else if (typeof method === 'object' || !method) {
// default to the init method and pass in the arg
return helpers.init.apply(this, arguments);
} else {
// throw an error
$.error('Method ' + method + ' does not exist on jQuery.tooltip');
}
};
}(jQuery));
$(function() {
$('body').append('<div id="fb-root"></div>');
(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=477049588983712";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
});
我认为问题出在这里
var url = window.location.href.split('#')[0];
var post = $('.post').children('a[name]').attr('name');
var helpers = {`
发生的事情是它提出了这样的网址 -
http://www.easybbtutorials.com/t177-user-profile-home-page#1244#undefined
所以我添加了split('#')[0];
and 效果很好,但我仍然得到未定义的部分。
http://www.easybbtutorials.com/t177-user-profile-home-page#undefined
同样在每个.post
地方,对于每个喜欢它的fb来说,它都是相同的url,它需要添加每个父母的a
名字......
我可能会混淆我的说法,但我现在只是愤怒并且写得很快。
更好的解释:
- .post 是第一个,fb data-href 应该是
http://www.easybbtutorials.com/t177-user-profile-home-page#8870
- .post 是第二个,fb data-href 应该是
http://www.easybbtutorials.com/t177-user-profile-home-page#8871
- .post 是第三个,fb data-href 应该是
http://www.easybbtutorials.com/t177-user-profile-home-page#8872
- .post 是第四个,fb data-href 应该是
http://www.easybbtutorials.com/t177-user-profile-home-page#8873
等等等等,这是一个论坛,所以会有多个 .post 区域
到目前为止,我必须像这样写电话......
$('.post').each(function() {
$(this).easyface();
});
我希望插件能够真正自动执行任何操作。所以$('.post').easyface()
会自动执行上面的代码。
此外,我现在还需要它来获取('a[name]').attr('name');
每个帖子的名称,尽管我现在不得不像这样添加它,('a[name]').attr('name').split('p')[1];
因为所有 id 都以 p ex 开头:p830 p338 p395 p 代表帖子。并且给定的链接将无法识别#p784,因此它需要成为#784。
谁能得到这个工作可以让我所有的声誉都设置为 100……现在我只有 43,但无论如何等待太久了。
更好地理解这里::
如您所见,我有四个喜欢并发送,就像他们都喜欢的一样。每个帖子需要不同的网址。