我正在处理日历,并希望在提交表单后禁用链接。
日历由链接(rel="box"
)组成,用于打开带有预订表单的灯箱。填写表单后,我想通过将rel设置为rel="noshow"
来禁用相应的链接。
首先的脚本应该检查链接的rel属性。如果是rel="box"
灯箱是开放的,当它是空的时,将遵循正常的目的地,当它是rel="noshow"
时,什么都不会发生..
我目前有以下代码,它会打开一个灯箱并在需要时跟随正常目的地,但整个rel="noshow"
部分似乎无效...
$("a").click(function(){
if(this.rel == "noshow"){
this.preventDefault();
return false;
}else if(this.rel == "box"){
[..]
$("#closeBox").click(function(c) {
c.preventDefault();
var parentCell = $("#date"+linkID[1]+linkID[2]+linkID[3]);
var childLink = parentCell.children();
parentCell.css("background-image","url('reserved-green.jpg')");
childLink.attr("rel","noshow");
alert(childLink.attr("rel"));
});
[..]
当表单关闭时,alert()表示noshow但是当我点击链接时它只跟随href值
我在这里做错了什么?
答案 0 :(得分:1)
将this.preventDefault()
替换为e.preventDefault()
并添加e
参数
(或者只是移除那一行; return false;
做同样的事情)
答案 1 :(得分:0)
这种情况正在发生,因为您遇到了JavaScript错误。
当您致电this.preventDefault();
时,this
是对链接的引用,而不是事件对象。因此,如果您要发送此活动,则需要调整点击事件签名以首先包含该活动。
$("a").click(function(event){
if(this.rel == "noshow"){
event.preventDefault();
return false;
}
});
尽管如此,.preventDefault()
电话是不必要的。 return false
语句将正确阻止这些实例中的点击。