2014-02-19 65 views
1

反正有最小化功能/調用過程相同的JavaScript函數編碼嗎?我不能完全肯定的好辦法解釋,但這裏是下面的代碼...JavaScript函數最小化?

的JavaScript:

$(function() { 
$('#CartDialog').dialog({ 
    autoOpen:false, 
    title:"Shopping Cart", 
    width:600, 
    minWidth:600, 
    maxWidth:600, 
    minHeight:300, 
    maxHeight:600, 
    modal:true, 
    show:{effect: "blind"}, 
    hide:{effect: "fade"} 
    }); 
$('#CartLink').on('click', function() { 
    $('#CartDialog').dialog('open'); 
}); 
}); 
$(function() { 
$('#LoginDialog').dialog({ 
    autoOpen:false, 
    title:"Login/Register", 
    width:650, 
    maxWidth:650, 
    height:250, 
    maxHeight:600, 
    resizable:false, 
    modal:true, 
    show:{effect: "blind"}, 
    hide:{effect: "fade"} 
}); 
$('#LoginLink').on('click', function() { 
    $('#LoginDialog').dialog('open'); 
}); 
}); 
$(function() { 
$('#LogoutDialog').dialog({ 
    autoOpen:false, 
    title:"Logout Confirmation", 
    width:250, 
    height:250, 
    resizable:false, 
    modal:true, 
    show:{effect: "blind"}, 
    hide:{effect: "fade"} 
    }); 
$('#LogoutDialog').on('click', function() { 
    $('#LogoutDialog').dialog('open'); 
}); 
}); 
$(function() { 
$('#MyAccountDialog').dialog({ 
    autoOpen:false, 
    title:"Login/Register", 
    width:600, 
    minWidth:600, 
    maxWidth:600, 
    minHeight:300, 
    maxHeight:600, 
    modal:true 
    }); 
$('#MyAccountDialog').on('click', function() { 
    $('#MyAccountDialog').dialog('open'); 
}); 
}); 

主要文件理念:

<div class="TopShortLinks" id"CartDialog"></div> 
<div class="TopShortLinks" id"LoginDialog"></div> 
<div class="TopShortLinks" id"LogoutDialog"></div> 
<div class="TopShortLinks" id"MyAccountDialog"></div> 

我一直在努力以調用類調用的想法,然後使用div id提出一箇中央JavaScript函數(如果可能的話),以確定正確的數據顯示在當前它看起來非常重複。

希望它很容易理解。

+2

當您說「java功能」時是否指「javascript功能」?或者我錯過了什麼? –

+0

是的,我的意思是一個Javascript函數,對不起:)混淆:) – Earunder

+0

開始你可以從每個函數中刪除'$(function(){})'包裝,並且只包含一個'$(function(){} )' – Champ

回答

4

我的建議做的是定義將被用於啓動所有的對話窗口的一個功能:

function show_dialog(selector, settings){ 
    var default_settings = { 
    modal: true, 
    autoOpen: false, 
    minWidth:600, 
    minHeight:30, 
    ... 
    } 
    $.extend(default_settings, settings); 
    $(selector).dialog(default_settings); 
} 

您將通過爲相關的DOM元素的選擇,幷包含所有的獨特設置的對象每個對話框。在函數中,定義了一個default_settings對象 - 它包含所有調用中所有調用的所有設置,但傳遞給該函數的設置對象可以通過使用$.extend() function「合併」對象來覆蓋這些默認值。

實例:

show_dialog("#CartDialog", { 
    minWidth:700, 
    maxWidth:500, 
    minHeight:100, 
    maxHeight:800 
}); 

調用該函數將使用#CartDialog作爲其選擇器和覆蓋默認minWidthminHeight與被傳遞的值。在show_dialog中定義的所有其他設置將保持不變,modal,autoOpen等...

+0

更整潔:)感謝您的幫助 – Earunder