我有一个页面,当用户单击页面上的图像或链接时,应该弹出一个模式(叠加)。当第一次加载页面,模式是空白和隐藏的这个网站:CSS样式为空
<!--// MODAL: ITEM PROFILE //-->
<div id="profile" class="modal" style="visibility: hidden">
</div>
<!--// OVERLAY //-->
<div id="overlay" style="visibility: hidden"></div>
当用户点击图片或链接的模式应该使用此功能被触发:
function itemModal(id){
var modal = $("#profile");
if (modal == null){
alert("Modal not found!");
}
if($(" #profile").style.visibility == "hidden"){
$.ajax
(
{ //Ajax call to get item data
type: "POST",
url: "/organizer/getItem",
data: { item_id: id },
dataType: "html",
success: function(responseText, textStatus, XHR)
{
// select the element with the ID profile and insert the HTML
$("#profile").html(responseText);
$("#profile").style.visibility = "visible";
$("#overlay").style.visibility = "visible"
}
}
);
}
else{ //Modal is being displayed, hide it and remove contents
$("#profile").html('');
$("#profile").style.visibility = "hidden";
$("#overlay").style.visibility = "hidden";
}
}
但是,当我点击触发模式时,我收到错误消息Uncaught TypeError: Cannot read property 'visibility' of undefined
。我提醒了一下,试图捕捉到这一点,并发现虽然profile元素存在,但它的样式显然不包含为其定义的内联css,以及另一个文件中的大约250行。为什么style属性会显示为空?
使用css方法,而不是样式。 http://api.jquery.com/css/ if($(“#profile”).css(“visibility”)==“hidden”)...类似那样 –