所以我的表格上有一个像facebook一样的按钮。它在第一次呈现表单时呈现完美呈现。但是,如果我提交表单并且它被重新呈现,则会发生不好的事情。我要么得到一个空白的div或者离开中心而不响应FB.Event.subscribe的div waaay。有没有人对如何使这项工作有任何指示?我希望每次重新渲染表单时都能正确呈现按钮。
这是我的渲染数组:
'facebook' => array(
'#id' => 'wefwefwef',
'#type' => 'container',
'#prefix' => '<div class="igd_social_box">',
'#suffix' => '</div>',
'#attributes' => array(
'class' => array('fb-like'),
'data-href' => array($url),
'data-layout' => array('button'),
'data-colorscheme' => array('dark'),
'data-action' => array('like'),
'data-share' => array(TRUE),
'data-show-faces' => array(FALSE),
)`
JS是:`
Drupal.behaviors.social_facebook = {
attach: function (context, settings) {
//Facebook Like
window.fbAsyncInit = function() {
FB.init({
appId: blahblahblah,
status: true,
cookie: true,
xfbml: true,
});
};
FB.Event.subscribe('edge.create', function() {
alert('Please work!!');
});
jQuery('.fb-like').once(function() {
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if(d.getElementById(id)) { return; }
js = d.createElement('script');
js.id = id;
js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
});
};
});`