2014-09-25 73 views
1

我想要的是當我的輸入框增益focus並能夠選擇一個值並填充文本框時顯示hidden div。 然後使顯示的div fadeOut如何去關於重點事件點擊事件

<div class='_date'> 
    <div class='birth_date'> 
     <p class='year'>1970</p> 
     <p class='year'>1971</p> 
     <p class='year'>1972</p> 
    </div> 
</div> 
<input type='text' name='date_year' id = 'birth_year'> 

jQuery的

$('.birth_date').hide(); 
$('body').on('focus', '#birth_year' ,function (e) { 
    $('.birth_date').show(); 
    //this is where my click event comes in... 
}) 

如何實現這個bubbles在我的頭上,我就如何嘗試一下有點糊塗了。

見下圖: enter image description here

回答

1
$('.birth_date').hide(); 
$(document).on('focus', '#birth_year' ,function (e) { 
    $('.birth_date').show(); 
}); 

on click r探索元素的價值。 並插入它具有您輸入的值。 (然後fadeOut)

click()關閉is.(":focus")mousedown()沒有。所以當你點擊.year時,你可以檢查用戶是否仍然關注好的輸入。

$('.year').mousedown(function(){ 
    if ($('#birth_year').is(":focus")) { 
     var year = $(this).html(); 
     $('#birth_year').val(year); 
     $('.birth_date').fadeOut(); 
    } 
}); 

編輯:好的,你也可以測試焦點。就像那樣,只要焦點在其上,就可以填充和隱藏輸入。

+0

這個工程,但我希望點擊事件來'mousedwon'事件,因爲我有其他的事情。 – Yax 2014-09-25 14:24:02

+0

這裏是一個[小提琴](http://jsfiddle.net/donkino/qu6vovf4/) 我認爲你在找什麼。 – donkino 2014-09-25 15:07:27

0
var highlightedyear = $('.year').val(); 
$('#birthyear').html(highlightedyear); 

,讓您最初選擇的值,然後根據它的變化....

$('.year').on('change', function(){ 
var highlightedyear = $('.year').val(); 
$('#birthyear').html(highlightedyear); 
}); 

,但我想給多輸入選擇的ID而不是按類別選擇

+0

這太不工作時,輸入收到焦點。這將顯示今年的div! – Yax 2014-09-25 14:17:08

1

這樣的事情也許

<div id="content"> 
<div class='_date'> 
    <div class='birth_date'> 
     <p class='year'>1970</p> 
     <p class='year'>1971</p> 
     <p class='year'>1972</p> 
    </div> 
</div> 
    <input type='text' name='date_year' id = 'birth_year' /> 
</div> 

$('#birth_year').mousedown(function (e) { 
    $('._date').show(); 
}); 


$('.year').click(function(){ 
    $('#birth_year').val($(this).text()); 
    $('._date').hide(); 
}); 

http://jsfiddle.net/mig1098/wgLgcdt2/

+0

這個工程,但我希望點擊事件來'mousedwon'事件,因爲我有其他的事情。 – Yax 2014-09-25 14:23:17

+0

再次檢查鏈接 – miglio 2014-09-25 14:33:00

1

你能更好的描述你想與鼠標按下做什麼?你的問題是當輸入獲得焦點時如何顯示框,以及如何從div內部接收點擊(或者我誤解了某些內容)。

$(function() { 
    $(".birth_date").hide(); 
    $("#birth_year").on("focus", function (e) { 
     $(".birth_date").show(); 
     this.blur(); 
    }); 
    $(".year").on("click", function (e) { 
     $("#birth_year").val($(this).html()); 
     $(".birth_date").fadeOut(); 
    }); 
}); 

HTML:

<div class='_date'> 
    <div class='birth_date'> 
     <p class='year'>1970</p> 
     <p class='year'>1971</p> 
     <p class='year'>1972</p> 
     <p class='year'>1973</p> 
     <p class='year'>1974</p> 
     <p class='year'>1975</p> 
     <p class='year'>1976</p> 
     <p class='year'>1977</p> 
     <p class='year'>1978</p> 
    </div> 
    <input readonly type='text' name='date_year' id = 'birth_year' /> 
</div> 

工作實例:http://jsfiddle.net/Lh9s6x6o/1/

+0

我可以在'('focus'...'')下放置'$('。year')。我想實現什麼,並在jQuery代碼中作爲評論進行了陳述。 – Yax 2014-09-25 15:00:46