2010-09-20 53 views
0

我正在处理日历,并希望在提交表单后禁用链接。禁用链接不起作用

日历由链接(与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")); 
    }); 
    [..] 

当窗体关闭警报()说NOSHOW但是当我点击它只是遵循href值

上午什么我在这里做错了吗?

回答

0

发生这种情况是因为您遇到JavaScript错误。

当您拨打this.preventDefault();时,this是对链接的引用,而不是事件对象。所以如果你想发送这个事件,你需要调整你的点击事件签名来首先包含事件。

$("a").click(function(event){ 
    if(this.rel == "noshow"){ 
    event.preventDefault(); 
    return false; 
    } 
}); 

虽然真的,.preventDefault()调用是不必要的。 return false语句将适当地阻止这些实例中的点击。

+0

工作正常,谢谢! – Maurice 2010-09-22 16:07:37

1

this.preventDefault()替换为e.preventDefault()并添加e参数。
(或者只是删除该行; return false;做同样的事情)