2012-01-28 88 views
0

我有一個窗體中的文本框輸入; 當我點擊它時,它旁邊會出現一個鏈接。當我在文字輸入框外單擊時,鏈接被隱藏。如何點擊在文本框輸入之外單擊時隱藏的鏈接?

我有這樣的代碼,改變文本框輸入字段的風格,隱藏鏈接:

$('#txtbox').blur(function(){ 
$('#txtbox').removeClass('active'); 
$('#txtbox').addClass('passive'); 
$('#link').hide(); 
}); 

我希望能夠點擊鏈接,但是當我點擊的地方outsite文本框中,鏈接被隱藏。

當我點擊它時,鏈接仍然可見,但是當我點擊文本框外部並且當我沒有點擊鏈接時,它也會隱藏起來。

回答

1

試試這個。

$(function(){ 
    $(document).click(function(){ 
     $('#link').hide(); 
    }); 
    $('#link').click(function(e){ 
     e.stopPropagation(); 
     //Do other stuff on click of link here 
    }); 
    $('#txtbox').blur(function(){ 
     $('#txtbox').removeClass('active').addClass('passive'); 
    }).focus(function(e){ 
     $('#txtbox').addClass('active').removeClass('passive'); 
     $('#link').show(); 
    }).click(function(e){ 
     e.stopPropagation(); 
    }); 
}); 

Demo

+0

優秀的編碼風格。我現在就試試這個。 – Spec 2012-01-28 05:48:00

+1

@Spec - 查看我編輯的答案,修正了一些問題,並添加了演示鏈接。 – ShankarSangoli 2012-01-28 05:54:22

2

有兩種解決方案,您的問題

1 :)使用淡出/慢隱藏

$('#link').fadeOut(); 

$('#link').hide('slow'); 

2 :)使用的setTimeout()

setTimeout(function() { $('#link').hide('slow'); }, 1000); 
+1

我非常喜歡這個。 http://jsfiddle.net/2Rjqp/2 – mrtsherman 2012-01-28 05:49:04