我的问题如下:
我的页面上有多个过滤器,可以动态过滤事件计划,因此当我点击任何过滤器时,我的网址会更改而不会重新加载页面。
例如:
然后,我与Sharrre共享按钮:
.social.social--share-filters
a.icon.icon-twitter.js-twitter-filters(href="#", target="_blank")
a.icon.icon-linkedin2.js-linkedin-filters(href="#", target="_blank")
a.icon.icon-facebook.js-facebook-filters(href="#", target="_blank")
$('.js-facebook-filters').sharrre({
share: {
facebook: true,
},
url: window.location.href,
enableTracking: false,
enableHover: false,
click: function(api, options) {
api.simulateClick();
api.openPopup('facebook');
}
});
尽管如此,在内部清单中我有url变量等于当前链接,它只共享第一次加载页面时派生的链接。
我试图将它放在图标上的点击事件中 - 这不起作用。
我试图在一个函数(例如,initialiseShare)中加入sharrre并执行window.initialiseShare = initialiseShare;
- 这也不起作用。
我试图删除并附加按钮,更改data-url属性,它也不起作用。
function initialiseShare(link) {
$('.js-twitter-filters').sharrre({
share: {
twitter: true,
},
enableTracking: false,
enableHover: false,
click: function(api, options) {
api.simulateClick();
api.openPopup('twitter');
} }); }
+
$(document).ready(function() {
initialiseShare();
$('.js-twitter-filters').on('click', function(){
var clone = $('.js-twitter-filters').clone();
$('.js-twitter-filters').remove();
$('.social--share-filters').append(clone);
$('.js-twitter-filters').data('url', window.location.href);
initialiseShare();
return false;
});
});
+
玉的图标
.social.social--share-filters
a.icon.icon-twitter.js-twitter-filters(href="#", target="_blank" data-url="#")
请帮忙!
提前谢谢!
P.S。我可以使用任何其他解决方案,除了那些可能导致无法在设计中定制的按钮。
答案 0 :(得分:0)
试试这个:
$('body').on('DOMNodeInserted', '.js-twitter-filters', function(e) {
$(this).sharrre({
share: {
twitter: true,
},
enableTracking: false,
enableHover: false,
click: function(api, options) {
api.simulateClick();
api.openPopup('twitter');
}
});
});
<强>解释强>
您正在尝试绑定到动态加载的元素。当您的脚本在页面加载时执行时,这些元素不可用于jQuery以“sharrre”执行绑定 - 因此您可以使用.on()
活动绑定委托在插入后绑定到元素。
<强>参考:强>