2010-08-19 61 views
0

对不起,如果有人问我这个问题,我不确定如何最好地说出来,所以我在Google上找不到结果。jQuery要在div中切换表单,防止在点击输入时隐藏

我现在有一个div #divForm,里面有一些文本和一个表格。我现在有这么当你点击它的div切换显示表:

$("#divForm").live('click', function() { 
      $(this).attr('class', 'closeForm'); 
      $(this).find("table.formTable").slideDown(); 
     }); 

隐藏在div是如下代码:

$(".closeForm").live ('click', function() { 
      $(this).attr('id', 'divForm'); 
      $(this).find("table.formTable").slideUp(); 
     }); 

这工作。但是,由于表格/表格中的输入位于div内,因此单击输入以输入信息会导致表格隐藏。

当单击div的任何位置时,使表格/表格隐藏时最好的方法是什么?单击输入时除外?

+0

你应该实现一个可见的可点击按钮/元素关闭它。如果他们在其中一个编辑框外单击,隐藏该表单非常不直观。很多人都很喜欢,包括我自己在内。 – Fosco 2010-08-19 17:18:19

回答

3

我不知道我完全理解你的布局,但如果.closeForm是点击目标,你可以使用.is():input这样的检查实际的活动对象:

$(".closeForm").live('click', function (e) { 
    if($(e.target).is(":input")) return; 
    $(this).attr('id', 'divForm'); 
    $(this).find("table.formTable").slideUp(); 
}); 
+0

这就是我一直在寻找的东西。非常感谢。 – 2010-08-19 17:37:29

+0

@Josh - Welcome :)请务必接受关于此问题和您以前的问题的答案,如果这些答案通过旁边的复选标记解决,那么这对大多数人都有帮助:) – 2010-08-19 17:49:53