如果尚未显示div,则显示div

时间:2014-12-21 12:54:28

标签: jquery visibility hidden

我有一些代码可以将文本添加到div然后显示它。

$("#messageBox").addClass('msg-error').text("Your selected date is no longer available due to the appointment duration. Please select an alternative date.").show();

然后我有一些其他代码也会将文本添加到同一个div并显示它。

$("#messageBox").addClass('msg-error').text("Your selected time is no longer available due to the appointment duration. Please select an alternative time.").show();

但是,如果messageBox div尚未显示,我只希望显示底部消息。我的代码是。

if($("#messageBox").not(':visible') || $("#messageBox").css("visibility") == "hidden"){
    $("#messageBox").addClass('msg-error').text("Your selected time is no longer available due to the appointment duration. Please select an alternative time.").show();
}

它似乎总是起作用,我做错了吗?

由于

2 个答案:

答案 0 :(得分:4)

请改为尝试:

if($("#messageBox").is(':hidden')){
    // your existing code
}

或者替代

if($("#messageBox").is(':visible') === false){
    // your existing code
}

希望这能解决您的问题。

答案 1 :(得分:1)

如果这些是您切换可见性的唯一方法,那么最简单的选择就是检查div #messageBox是否已经拥有类msg-error

if(!$('#messageBox').hasClass("msg-error")) {
    $("#messageBox").addClass('msg-error').text("Your selected time is no longer available due to the appointment duration. Please select an alternative time.").show();
}