我希望有这种情况,如果有人悬停链接,应该动态创建一个元素,并提供有关该链接的信息。
我知道有一些标准的jquery scrips可用于此,但是由于我对jquery的理解,我想自己制作。
我将展示这样的元素:
$(".event-date").live("mouseover",function(e){
var event = e || window.event;
event.preventDefault();
$(this).append("<div id='showEventInfoWrap'><div id='closeEventInfo'>Close</div><div id='showEventInfo'></div></div>");
$("#showEventInfo").load("event-info.php");
});
我使用live()
因为日历显示在<div>
元素中,当用户浏览月份时,该元素会发生变化。
问题在于隐藏div时: a)用户点击“关闭”链接;要么 b)用户徘徊在出现的元素之外。
我尝试了以下任何选项,但它们都没有奏效:
$("#closeEventInfo").live("click",function(e){
$(this).parent().attr("id").remove();
$("#showEventInfoWrap").remove();
$("#showEventInfoWrap").children().remove();
$("#showEventInfoWrap").add("#closeEventInfo").add("#showEventInfo").remove();
});
我还尝试了empty()
而不是remove()
,但没有任何结果。
有人可能知道我做错了吗?
答案 0 :(得分:3)
$(this).parent().attr("id").remove();
抛出错误,导致脚本终止
带有单个参数的.attr()
返回一个字符串或undefined
。它不是jQuery对象,因此.remove
未定义。
如果要删除父元素,请使用:
$(this).parent().remove();
如果要删除ID属性,请使用:
$(this).parent().removeAttr("id");
$("#showEventInfoWrap").remove();
会删除#showEventInfoWrap
元素,包括其子代。