我有兩個div每個都有一個鏈接列表,當一個鏈接被點擊時,一個AJAX調用是附加一些JSON數據到一個單獨的div。在追加數據的同時,我希望div能夠隱藏/移除剛剛點擊的鏈接的鏈接。jQuery刪除只AJAX調用後的第二次點擊
還有一個第三個div「panel-close」,可以點擊它去除剛剛附加數據的div,並使包含鏈接的div再次出現。所以一切都恢復到原來的狀態
我遇到的問題是,一旦包含數據的div有時被刪除,包含鏈接的div不會再次出現,有時它會在第二次點擊面板時發生關閉div,有時JSON數據在點擊鏈接後不會再次追加。
我的是我的HTML的基本設置:
<div class="curation-panel">
<div class="curation-contents-list">
<a class="load-article"></a>
</div>
<div class="article-container">
</div>
</div>
<div class="film-panel">
<div class="film-contents-list">
<a class="load-project"></a>
</div>
<div class="project-container">
</div>
</div>
<div class="panel-close">
</div>
我是一個jQuery小白,我可能完全採取了錯誤的方法,但是這是我的jQuery代碼:
$(function(){
var element = $('.load-article');
var url = element.data('page') + '.json';
var target = $('.article-container');
$(element).on('click', function(e) {
e.preventDefault();
$.get(url, function(data) {
$('.curation-contents-list').hide();
$(target).append(data);
});
$("body").addClass("load-article-is-open"),
$(this).animate({
scrollTop: 0
}, 300, "easeInOutExpo")
});
}),
$(function(){
var element = $('.load-project');
var url = element.data('page') + '.json';
var target = $('.project-container');
$('.load-project').on('click', function(e) {
e.preventDefault();
$.get(url, function(data) {
$('.film-contents-list').hide();
$(target).append(data);
});
$("body").addClass("load-project-is-open"),
$(this).animate({
scrollTop: 0
}, 300, "easeInOutExpo")
});
}),
$(".panel-close").click(function() {
$("body").removeClass("curation-panel-is-open").removeClass("film-panel-is-open").removeClass("load-article-is-open").removeClass("load-project-is-open"),
$(".curation-panel").animate({
scrollTop: 0
}, 300, "easeInOutExpo"),
$(".film-panel").animate({
scrollTop: 0
}, 300, "easeInOutExpo"),
$('.curation-contents').show();
$('.film-contents-list').show();
$('.article-container').remove();
$('.project-container').remove();
});
備查,沒有理由做'$(元素).on',它已經是一個jQuery對象,所以你可以做'element.on '。只是一個指針,不會解決你的問題。 – epascarello
謝謝你的指針,它正確注意到 –