2012-02-11 99 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