【发布时间】:2012-03-24 23:25:43
【问题描述】:
我有一些加载了 ajax 的选项卡。我通过 HTML 获取内容并将其插入到页面中。棘手的部分是当我使用 ajax 加载新内容时,我需要监听新内容的其他事件并对新内容执行其他任务。 这是我的对象:
var Course = {
config: {
page: 'description'
}
init: function() {
$('a.show-details').on('click', this.loadCourse);
},
loadCourse: function() {
var courseId = $(this).parent().data('course_id'),
item_content = $(this).parents('div.item').children(),
path = 'main/ajaxjson/load_course_details';
if ($(this).parents('h1.more').hasClass('current')) {
$(this).parents('h1.more').removeClass('current');
} else {
$(this).parents('h1.more').addClass('current');
}
$(item_content[2]).slideToggle();
Course.doAjax(courseId, path);
},
doAjax: function(courseId, path) {
$.ajax({
type: 'POST',
url: ROOT_PATH + path,
data: {page : Course.config.page, course_id: courseId},
success: function(result){
$('#ajax-content-' + courseId).hide();
$('#ajax-content-' + courseId).empty().append(result);
$('#ajax-content-' + courseId).show();
// bind events here? call other methods like Couse.methodName()?
}
});
}
}`
我没有提供标记,所以让我解释一下逻辑。我初始化了课程对象,当我点击它时我有一个链接,我触发了一个 ajax 请求来获取课程并滑动切换课程内容。现在我返回加载的 html 内容。在 html 中,我将有按钮和其他项目。我创建了一个新方法 bindEvents 并在那里绑定事件?我需要为每个 ajax 调用重新绑定吗?
【问题讨论】:
标签: jquery