试图整合jQuery代码

时间:2011-06-16 20:59:56

标签: jquery consolidation

我有大量代码需要在另一段代码之前加载,以使其正常工作。为了让我实现这一目标,我一遍又一遍地使用多个脚本。有没有办法可以清理其中一些?我会尝试举例:

//This needs to load first to add class
<script>
$(function(){
if (typeof(global_Current_ProductCode) !="undefined")
    {
        if ($('#pt494').length == 0 )
            {   $('font[class="text colors_text"]:eq(0)').closest('table').addClass('thePrices'); }    
    } 
});
</script>

//This needs to load 2nd because it has to add the class first before it does this
<script>
$(function(){
if (typeof(global_Current_ProductCode) !="undefined")
    {
        if ($('#pt490').length == 0 )
            {   $('table[class="thePrices"]:eq(0)').closest('table').before($('font[class="productnamecolorLARGE colors_productname"]:eq(0)').addClass('toptitle'));}
    } 
});
</script>

还有更多类似于此的代码,必须有一种方法可以在同一个IF语句下抛出所有代码吗?

2 个答案:

答案 0 :(得分:2)

我不确定我理解你的问题。按顺序写入的代码块不会同时执行。因此,您可以合并代码:

<script>
$(function(){
if (typeof(global_Current_ProductCode) !="undefined")
    {
        if ($('#pt494').length == 0 )
        {   
            $('font[class="text colors_text"]:eq(0)').closest('table').addClass('thePrices'); 
        }   
        if ($('#pt490').length == 0) {
            $('table[class="thePrices"]:eq(0)').closest('table').before($('font[class="productnamecolorLARGE colors_productname"]:eq(0)').addClass('toptitle'));
        } 
    } 
});
</script>

答案 1 :(得分:0)

除了设计自己的框架之外,除了尝试在将来编写更清晰的代码之外,没有什么可以做的。根据我的经验,我通常会将所有html注入内容合并到一个函数中,然后再调用它。

您还可以将功能分离到$(document).ready()和$(window).load。文档就绪后会出现窗口加载,但这对于凌乱的代码来说绝对不是一个完整的解决方案。