我不是JS忍者,因此我在這裏要求一些指導。我有以下情形jQuery - 如何從兩個不同的事件加載共同的div中的內容?
- 頁面加載和commondiv隱藏
- 如果用戶點擊按鈕showeditform,我加載commondiv editform並顯示commondiv
- 如果用戶點擊按鈕showeditform和editform是可見的,刪除它,隱藏commondiv
- 如果用戶點擊按鈕showpasswordform如果editform是可見的,我刪除editform並顯示passwordform
- 如果用戶點擊按鈕showpasswordform如果passwordform可見,刪除和隱藏的共同DIV
- 如果用戶點擊按鈕showeditform如果passwordform是可見的,我刪除passwordform並顯示editform
截至目前,我已經設置了標誌,如果別人的,但它不是很好的辦法做到這一點。我怎樣才能達到這個使用最少的jQuery代碼?
更新:以下是我嘗試
$('a.editpo, a.resetpass').click(function(event){
event.preventDefault();
var urlToCall = $(this).attr('href');
var hyperlinkid = '#'+$(this).attr('id');
var targetId = $(this).attr('id').match(/\d+/);
var targetTrDiv = '#poformloadertr_'+targetId;
var targetTdDiv = '#poformloadertd_'+targetId;
var toToggle = $('#resetuserpassform_'+targetId).is(':visible') || $('#account-home-container-'+targetId).is(':visible') ;
console.log(toToggle);
if(toToggle == true || $(targetTdDiv).html()==''){
$.ajax({
url:urlToCall,
success: function(html){
$(targetTdDiv).html(html);
$(targetTrDiv).show();
}
});
}else{
$(targetTrDiv).hide();
$(targetTdDiv).html('');
}
});
的editpo
和resetpass
在表列中的超鏈接應用類,即修改個人信息和復位傳,點擊這些負載了形式在tr>td
。正如我所說的,我不擅長JS和jQuery,因此如果您覺得代碼可以在某個步驟進行優化,請隨時這樣做。謝謝!
使用jQuery,您還可以在一個環節出的方法。因此,.fadeOut(300).html(newHTML).fadeIn(300)會在300毫秒內淡出內容,將新的HTML加載到容器中,並在300毫秒內淡入內容。 – rlemon
這裏是我的拿走http://stackoverflow.com/questions/7110215/jquery-help-in-optimising-refactoring-code – Kumar