当用户单击页面上的图像或链接时,我有一个页面应该弹出模式(覆盖)。当页面第一次加载时,模态框是空白的并且被这个 html 隐藏:
<!--// 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 行。为什么样式属性会显示为空?