2013-02-25 108 views
1

我写了一个脚本,在输入区域内单击时显示一个提交按钮。当在输入框外单击时,该按钮应该隐藏。有几个区域和按钮,因此我为每个按钮和区域分配了一个唯一的ID。jQuery - 显示和隐藏按钮

问题是:当我点击区域时,按钮显示。但是当在室外点击时,没有任何反应该脚本作品,如果我只有一个按钮区域,但分配ID时,它停止工作...

$(".textarea").click(function(e) { 
    var cid = $(this).attr('rel'); 

    $("#submit" + cid).show(); 
    e.stopPropagation(); 
}); 

$(document).click(function() { 
    $("#submit" + cid).hide(); 
}); 
+0

'文档'对象不可点击区域 – kidwon 2013-02-25 13:07:39

+0

点击文档时是否有任何东西被分配给cid? – Brett 2013-02-25 13:08:12

回答

1
$(".textarea").click(function(e) { 
    var cid = $(this).attr('rel'); 

    $("#submit" + cid).show(); 
    e.stopPropagation(); 
}); 

$(document).click(function() { 
    //add logic to hide all submit buttons by assigning common class to all 
}); 
+0

当然,不能理解我是如何忘记这一点的。谢谢! – David 2013-02-25 13:11:09

+0

如果您有解决方法,请将其标记为答案:) 快乐编码 – 2013-02-25 13:11:51

3

变量cid在匿名文本区域单击处理程序被宣布。所以,当另一个函数由于点击而被调用时,它没有值。

更改隐藏功能的东西独立的cid这样

$(document).click(function() { 
    $("button[id*=submit]").hide(); 
}); 

id*=submit节将寻找那些有在idsubmit和隐藏所有按钮。这将规避跟踪cid的需要。如果您不想隐藏ID为submit的其他按钮,则需要根据班级或更改ID格式进行选择。