我使用插件航路点(http://imakewebthings.com/jquery-waypoints/)
* 编辑:工作解决方案:http://pastebin.com/x95Qf7m8 *
我要做的是在“share-this”标签向下滚动时加载链接中包含的共享小部件。
您可能会注意到head.ready的使用,它只是document.ready的替代品,因为我使用headjs来加载我的外部脚本。
我的问题很简单,为什么它在点击触发时有效,但没有使用航点插件?欢迎任何帮助
head.ready(function() {
$('.share-this').waypoint(function(event, direction) {
if (direction === 'down') {
var contentId = $('.share-this').attr('rel');
var uri = $('.share-this').attr('rev');
e.preventDefault();
//console.log('clicked');
$.ajax({
url: 'http://www.entendu.info/share',
type: 'GET',
dataType: 'html',
data: {id:contentId, url:uri},
complete: function(xhr, textStatus) {
},
success: function(data, textStatus, xhr) {
$('#'+contentId).html(data);
},
error: function(xhr, textStatus, errorThrown) {
}
});
}
else {
// do this on the way back up through the waypoint
}
});
});
<div class="content" id="{$posts[i].PID}" style="float:left">
<a href="" class="share-this" rel="{$posts[i].PID}" rev={$posts[i].name|escape:'htmlall'}">
<img src="{$imageurl}/share2.png" width="379" height="22" style="opacity: 0.5; float:left"></a>
</div>
答案 0 :(得分:0)
在您说e.preventDefault()
的功能中,但没有e
。您的活动名为event
。如果您在控制台中查看,您将看到错误“e未定义”。另外,防止航路点处理程序中的默认值无效,所以我不确定该行的重点是什么。