jQuery只隐藏一次

时间:2013-12-13 15:34:15

标签: javascript jquery html datepicker

我的日历在日期选择时没有关闭。所以我已经定位了一个类(.day)来点击时关闭日历。但是,当我重新打开日历并选择新日期时,它不会再次关闭。我在这里寻找答案,虽然类似的标题和问题但代码并不完全相同......

$('.day').click(function () {
  $(".datepicker").hide();
});

<span class="input-append date dp-ticket" data-date="today" data-date-format="dd-mm-yyyy">
  <input type="text" class="add-on form-control col-xs-10 col-sm-10 col-md-10 col-lg-10" placeholder="Or, choose any date" name="startdate" id="startdate">
  <button class="add-on btn btn-search col-xs-2 col-sm-2 col-md-2 col-lg-2" type="button">
    <span class="icon-calendar"></span>
  </button>
</span>

3 个答案:

答案 0 :(得分:0)

尝试使用。

$('.day').on('click', function () {
  $(".datepicker").hide();
});

答案 1 :(得分:0)

很抱歉,除了jQuery之外,我没有在代码示例中看到.day或.datepicker。也许我错过了什么......大笑

我的猜测是脚本注册了原始的hide事件,但没有注册,当你尝试更改日期时,再次显示.datepicker,所以只要脚本知道它在你更改日期时仍然隐藏。

您可以尝试使用.change()来检测日期字段值的更改(或者您放置日期数据的位置。)

$(".foo").val().change(function() {
  $(".datepicker").hide();
});

您可能需要设置默认值,但每次更改时都会运行隐藏.datepicker的功能。

答案 2 :(得分:0)

我不确定.day是如何被称赞的,因为你没有在你的代码中显示它,但因为它只触发一次,我想你正在向DOM添加.day动态。

如果是这种情况,您可以这样做:

$('SELECTOR_OF_PARENT').on('click', '.day', function(){
    $(".datepicker").hide();
});

您也可以这样做

$(document).on('click', '.day', function(){
    $(".datepicker").hide();
});

以下是.on()

的更多信息