2012-03-28 60 views
0

我有一個可拖動的div,當然可以拖動。 裏面,我有輸入文字有兩個事件(焦點和模糊)。 在裏面,我有另一個div作爲可拖動取消div(拖動該div防止發生任何拖動)。Draggable取消觸發模糊事件

,你可以看到它在這裏: http://jsfiddle.net/wUDzh/4/

  • 點擊輸入框會觸發焦點事件,並單擊主外格(紅的)將觸發blur事件。這可以。
  • 單擊或拖動主div不會觸發模糊事件。這就是我想要的。
  • 問題是,單擊取消div(藍色)會導致輸入框發生模糊事件。這是有道理的,但那不是我想要的。

有什麼辦法可以防止模糊事件發生就像主要的div的行爲?

THX

回答

1

要防止當您單擊取消div模糊輸入字段,簡單地做:

$('#cancel').mousedown(function(e) { 
     e.preventDefault(); 
    }); 

fiddle

+0

哈哈我實際上試圖這樣做,但使用點擊事件。但就我而言,如果我使用點擊事件,則會在點擊事件發生之前觸發模糊事件。 Mousedown解決它!謝謝 – rooivalk 2012-03-28 08:52:08

1

你可以做

$("#text").blur(function(e) 
{ 
    // alert('a'); 
    if(e.target.id === 'text'){ 
     //this prevents other blur handlers from firing 
     e.stopImmediatePropagation(); 
     //this prevent the default action and returns 
     return false; 
    } 
    $(this).val("I've got blur"); 
}); 

這裏小提琴http://jsfiddle.net/wUDzh/6/

相關問題