我有很多代码,这些代码最需要在其他代码之前加载,才能正常工作。为了实现这一点,我一遍又一遍地编写了多个脚本。有没有办法让我把这些东西清理干净?我将尝试举个例子:
//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语句下吗?
我不确定我是否理解你的问题。按顺序编写的代码块不会同时执行。因此,您可以这样整合您的代码:
<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>
除了设计自己的框架之外,除了在未来尝试编写更干净的代码之外,没有什么可做的了。根据我的经验,我通常将所有html注入的东西合并到一个函数中,并在调用其他函数之前调用它。
您也可以将函数分离为$(document).ready()和$(window).load。在文档准备好后会进行窗口加载,但这绝对不是一个解决混乱代码的万全之策。