$(document).ready(function(){
$(function() {
$('a.ajaxload').click(function(e) {
var url = $(this).attr('href');
$('#desktopcontainer').load(url); // load the html response into a DOM element
e.preventDefault(); // stop the browser from following the link
});
});
$(function() {
$(".accordion .accordion-tabs .tab").each(function(){
$(this).click(function(){
if ($(this).hasClass('tab')){
$(this).removeClass('tab');
$(this).addClass('active');
}else{
$(this).removeClass('active');
$(this).addClass('tab');
}
$(this).next().slideToggle('slow');
return false;
});
});
});
});
我的标签工作正常,但点击了" a.ajaxload"要向页面添加内容,我的标签不再响应。
有谁能告诉我问题出在哪里?
解决!!!
我所做的是在加载后添加函数...查看下面的新代码并查看差异。我希望它有所帮助。
$(document).ready(function(){
initDashboard();
$(function() {
$('a.ajaxload').click(function(e) {
var url = $(this).attr('href');
$('#desktopcontainer').load(url); // load the html response into a DOM element
e.preventDefault(); // stop the browser from following the link
initDashboard();
});
});
function initDashboard() {
$(".accordion .accordion-tabs .tab").each(function(){
$(this).click(function(){
if ($(this).hasClass('tab')){
$(this).removeClass('tab');
$(this).addClass('active');
}else{
$(this).removeClass('active');
$(this).addClass('tab');
}
$(this).next().slideToggle('slow');
return false;
});
});
}
});
答案 0 :(得分:2)
您需要on()
,因为它是动态添加的(例如,通过load
方法插入):
$('.accordion .accordion-tabs').on('click', '.tab', function(){
if ($(this).hasClass('tab')) {
$(this).removeClass('tab');
$(this).addClass('active');
}else{
$(this).removeClass('active');
$(this).addClass('tab');
}
$(this).next().slideToggle('slow');
return false;
});
});
也不需要使用jQuery ready handler 三次,只需将所有与jQuery相关的代码放入其中:
$(document).ready(function(){
});
<强>文档:强>