Javascript 在一个没有';不总是这样吗?

Javascript 在一个没有';不总是这样吗?,javascript,jquery,Javascript,Jquery,我有一个页面,其中可能包含或不包含以下警报: <div class="alert">Some alert</div> 一些警报 5秒钟后,我用以下方法隐藏它们: <script type="text/javascript"> $(document).ready(function () { window.setTimeout(function() { $(".alert").fadeTo(1500, 0).slideUp(1500, functio

我有一个页面,其中可能包含或不包含以下警报:

<div class="alert">Some alert</div>
一些警报
5秒钟后,我用以下方法隐藏它们:

<script type="text/javascript">
$(document).ready(function () {

window.setTimeout(function() {
    $(".alert").fadeTo(1500, 0).slideUp(1500, function(){
        $(this).remove(); 
    });
}, 5000);

});
</script>

$(文档).ready(函数(){
setTimeout(函数(){
$(“.alert”).fadeTo(1500,0).slideUp(1500,function(){
$(this.remove();
});
}, 5000);
});
所以我想知道,我是否应该将警报隐藏功能放在我的常规函数中,这些函数总是在页面加载时执行,即使没有要隐藏的警报?或者把它放在HTML代码中,就在实际警报div代码的正下方,这样它只会在警报显示时发生

第一个选项的优点是我的代码更有条理。缺点是,即使没有警报,它也可能执行

第二个选项的优点是它只在警报显示时执行,但缺点是代码更混乱


哪一个更好?

没有什么不好的,但是通过删除
设置超时可以提高效率:

$(".alert").delay(5000).fadeTo(1500, 0).slideUp(1500, function(){
    $(this).remove(); 
});
这样,不会执行任何操作,如果没有警报,也不会注册回调


对于代码的位置,应避免在HTML的中间。将HTML和Javascript交织在一起通常是一种妨碍可维护性的糟糕做法。一个干净的模块化Javascript应该是解决方案。

没有什么不好的,但是您可以通过删除
设置超时来提高效率:

$(".alert").delay(5000).fadeTo(1500, 0).slideUp(1500, function(){
    $(this).remove(); 
});
这样,不会执行任何操作,如果没有警报,也不会注册回调


对于代码的位置,应避免在HTML的中间。将HTML和Javascript交织在一起通常是一种妨碍可维护性的糟糕做法。一个干净的模块化Javascript应该是解决方案。

没有什么不好的,但是您可以通过删除
设置超时来提高效率:

$(".alert").delay(5000).fadeTo(1500, 0).slideUp(1500, function(){
    $(this).remove(); 
});
这样,不会执行任何操作,如果没有警报,也不会注册回调


对于代码的位置,应避免在HTML的中间。将HTML和Javascript交织在一起通常是一种妨碍可维护性的糟糕做法。一个干净的模块化Javascript应该是解决方案。

没有什么不好的,但是您可以通过删除
设置超时来提高效率:

$(".alert").delay(5000).fadeTo(1500, 0).slideUp(1500, function(){
    $(this).remove(); 
});
这样,不会执行任何操作,如果没有警报,也不会注册回调


对于代码的位置,应避免在HTML的中间。将HTML和Javascript交织在一起通常是一种妨碍可维护性的糟糕做法。一个干净的模块化Javascript应该是解决方案。

现在,它将只在出现
警报时运行

if($(".alert").length > 0) {
 $(".alert").fadeTo(1500, 0).slideUp(1500, function(){
        $(this).remove(); 
    });
 }, 5000);
}

现在,它将仅在出现
警报时运行

if($(".alert").length > 0) {
 $(".alert").fadeTo(1500, 0).slideUp(1500, function(){
        $(this).remove(); 
    });
 }, 5000);
}

现在,它将仅在出现
警报时运行

if($(".alert").length > 0) {
 $(".alert").fadeTo(1500, 0).slideUp(1500, function(){
        $(this).remove(); 
    });
 }, 5000);
}

现在,它将仅在出现
警报时运行

if($(".alert").length > 0) {
 $(".alert").fadeTo(1500, 0).slideUp(1500, function(){
        $(this).remove(); 
    });
 }, 5000);
}

这并不能真正回答问题……我不明白为什么这个问题不能回答+1.这并不能真正回答问题……我不明白为什么这个问题不能回答+1.这并不能真正回答问题……我不明白为什么这个问题不能回答+1.这并不能真正回答问题……我不明白为什么这个问题不能回答+1.你能在那里抛出“如果警报存在”检查吗?你能在那里抛出“如果警报存在”检查吗?你能在那里抛出“如果警报存在”检查吗?你能在那里抛出“如果警报存在”检查吗?