我在单页网站上有以下代码:
<section class="block" id="panel1">
</section>
<section class="block" id="panel2">
<div class="loadcontent">
<div class="vcard">
[content here]
<a href="detail1.html">Proceed to detail level1</a>
</div>
</div>
</section>
<section class="block" id="panel3">
<div class="loadcontent">
<div class="vcard">
[content here]
</div>
</div>
</section>
我正在使用的 jquery 是这样的:
<script>
jQuery(function($) {
$(".loadcontent").on("click","a",function(ev) {
ev.preventDefault();
var $el = $(this);
var $lc = $el.closest(".loadcontent");
URLtarget = $el.attr("href");
//alert("URL:"+URLtarget+"\nZIndex:"+zindex+"\nATTR:"+$el.className);
$.ajax({
url: URLtarget,
data: {},
type: 'post',
error: function(XMLHttpRequest, textStatus, errorThrown){
alert('status:' + XMLHttpRequest.status + ', status text: ' + XMLHttpRequest.statusText);
},
success: function(data){
$lc.find(".vcard").fadeOut(1000,function() {
});
$lc.append(data);
}
});
});
});
在detail1.html
我有以下代码:
<div class="vcard">
<div><a href="#" class="closeme"> × CLOSE </a></div>
[content here]
<a href="detail2.html">Proceed to detail level1</a>
</div>
和 ondetail2.html
与 detail1 相同,但具有不同的内容模板(和数据)。当我启动第一个链接时,它可以正常加载 detail1.html,但是当我在 detail1.html 中单击 detail2.html 时,它会导致新页面(ajax 不起作用)。我认为 $.on() 正在“监听”dom 上的每个附加事件,正确的方法是什么?
我也尝试使用另一个 .on 作为.closeme
链接,但它不起作用,它引导我到文档的顶部。
任何人都可以解释一下吗?