我有一个包含许多带有字母数字 id 的元素的页面,例如:
<li class="entry" id="sjDDulC8wt">
<img src="sjDDulC8wt.jpg" />
<div class="entry_actions">
<ul class="entry_actions">
<li class='share_it'><a href='javascript:' target='_self'
title='Share It' class='share_it'>o</a>
</li>
</ul>
<div class="share_options_container"style="display:none;">
<ul>
<li><a href="#" class="facebook">F</a></li>
<li><a href="#" class="twitter">T</a></li>
<li><a href="#" class="pinterest">X</a></li>
</ul>
</div>
</div>
</li>
当我单击 entry_actions 列表下的锚标记时,它会显示 share_options div,当我将鼠标移开时,它会根据此脚本再次消失:
$(".share_it a").click(function(){
$(this).closest(".entry").find(".share_options_container").show();
})
$(".share_options_container").mouseleave(function(){
$(this).hide();
})
我还有一个无限滚动功能,当用户点击页面底部时,它会加载更多这些项目:
var vloaded = <?php echo $i; ?>; //number of items loaded so far
var vfilter = "<?php echo $filter; ?>"; //how I am filtering them
$(document).ready()
{
$(window).on('scroll', function ()
{
var height = $(window).height();
var scrollTop = $(window).scrollTop();
var dHeight = getDocHeight();
if( height + scrollTop >= dHeight - 10)
{
$.ajax
(
{
type: "POST",
url: "/organizer/getMore",
data: { filter: vfilter, loaded: vloaded },
dataType: "html",
success: function( responseText, textStatus, XHR )
{
// select the element with the ID grid and insert the HTML
$( "#grid" ).append( responseText );
}
}
);
// global variable
vloaded +=30;
} // if
}
); // on
} // ready
出于某种原因,显示/隐藏在最初加载的项目上工作得非常好,但是当我单击由 ajax 调用加载的项目时,它什么也不做。据我所知,点击事件没有被触发,但我不知道为什么。