ajaxがロードされているタブがいくつかあります。私はHTMLを介してコンテンツを取得し、ページに挿入します。難しいのは、新しいコンテンツをajaxでロードするときに、新しいコンテンツの他のイベントをリッスンし、新しいコンテンツに対して他のタスクを実行する必要があることです。私は、私はロジックを説明させてマークアップを提供しておりませんjqueryで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リクエストを発し、コースの内容をslideToggleにリンクします。今、私はロードされたHTMLコンテンツを返します。 htmlには、ボタンやその他のアイテムがあります。私は新しいメソッドbindEventsを作成し、そこにイベントをバインドしますか?すべてのAjaxコールを再バインドする必要がありますか?
これが重複している:http://stackoverflow.com/q AJAX要求はそんなにようなイベントを結合します/ 16598213/386579 –
これをチェック:http://stackoverflow.com/questions/13791740/jquery-lazyloa d-with-ajax/31234389#31234389 – antoniputra