2012-02-11 100 views
0

我正在做一个类似Facebook的聊天。我想实现显示/隐藏聊天的功能,当你点击聊天栏时,而不是当你点击.chat_txt或.chat_new_input时。你知道任何技巧吗?禁用默认功能jquery

//JavaScript Show/Hide Function 
$('.hidden_box').live("click", function(){ showChat(this); }); 
$('.active_box').live("click", function(){ hideChat(this); }); 

$('.chat_txt').click(function(event) { 
    event.preventDefault(); 
}); 

下面是DIV语法:

<div id="chat_system_msg_lp" class="chat_box clickable_box hidden_box"> 
    <div id="chat_system_msg_nick" class="chat_name">system_msg</div> 
    <ul id="chat_system_msg_txt" class="chat_txt"> 
     <li id="46">Hi visitor. We suggest you to sign in/sign up in order to have all the benefits from Live-Pin </li> 
    </ul> 
    <form class="chat_new_message" name="new_msg"> 
     <input type="text" placeholder="Enter your message..." class="chat_new_input"> 
    </form> 
</div> 

你可以看到现场演示在http://live-pin.com

+0

可能重复的[返回False jQuery Click()](http://stackoverflow.com/questions/9243753/return-false-jquery-click) – 2012-02-11 21:33:10

+1

请不要多次发表相同的问题。如果您添加了新信息,请通过位于问题底部的编辑链接编辑问题。 – 2012-02-11 21:33:46

+0

伙计你为什么要发表同样的问题两次?我实际上浪费了一分钟的时间试图在这里回答它,看到类似的问题在你的dup问题上得到了回答。 :< – 2012-02-11 21:41:12

回答

1

使用

$('.hidden_box #chat_system_msg_nick').live("click", function(){ showChat('#chat_system_msg_lp'); }); 
$('.active_box #chat_system_msg_nick').live("click", function(){ hideChat('#chat_system_msg_lp'); }); 

和删除JavaScript的最后一部分。

另外,请不要转发问题。如果您有任何添加/更改,只需编辑原始问题,

+0

它不起作用。 – Luis 2012-02-11 22:17:27

+0

也许你必须使用$ .live? 很难说,因为你看不到大部分的源代码。 – skimberk1 2012-02-11 22:20:18

+0

你可以在http://live-pin.com看到现场演示 – Luis 2012-02-11 22:22:33

1

这些事件使DOM层次结构“起泡”。

正确的方法是将点击事件分配给titlebar div(#chat_system_msg_nick)而不是孔聊天室。

+0

你能更具体地告诉我该怎么做吗?谢谢! – Luis 2012-02-11 22:17:49

+0

http://stackoverflow.com/questions/9242490/apply-a-jquery-function-live-in-1-object <---我描述它**那里** – Luis 2012-02-11 23:02:42