jquery click 第一次点击不好用,点第二次就可以为什么?

Input 点击出日期时间组件

<input type="text"  class="form-control" id="datetime" placeholder="Time" >

点第一次没反应,点一下别的地方再点就好使了为什么呢

$('#datetime').click(function(){
        $(this).datepicker({
            autoclose: true,
        });
    });
阅读 9.1k
6 个回答

第一次点击是实例化日期组件,第二次开始才是操作日期组件,所以应该直接调用组件

$( "#datepicker_date" ).datepicker({
 dateFormat: "yymmdd"
});

<input id="datepicker_date" type="text" name="date"></input>

这样就够了, 为什么要给input设置click.

你绑定插件应该放在外面试试,就是datepicker那段移到click外面去!

你是点击一次,再绑定插件

官网示例代码

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>jQuery UI Datepicker - Default functionality</title>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.12.0/themes/base/jquery-ui.css">
  <link rel="stylesheet" href="/resources/demos/style.css">
  <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
  <script src="https://code.jquery.com/ui/1.12.0/jquery-ui.js"></script>
  <script>
  $( function() {
    $( "#datepicker" ).datepicker();
  } );
  </script>
</head>
<body>
 
<p>Date: <input type="text" id="datepicker"></p>
 
 
</body>
</html>

因为我是全局的,不想用到的页面就在底部初始化一下 所以我写到了全局js文件里 最后是这样的

/**
     * 日期插件实现
     */
    if ( $("input").hasClass("datetime") ){
        $( '.datetime' ).datepicker({
            autoclose: true,
        });
    }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题