jquery - 为什么这个带有 flatpickr 的 jQuery 不起作用?(动态添加/删除日期时间字段)
问题描述
这让我发疯。
这是 jfiddle 显示情况:
https://jsfiddle.net/mao2je6k/
我正在尝试动态添加日期时间输入字段。我正在使用flatpickr进行日期时间选择。
似乎无论我做什么,只有第一个click(function()
被触发。因此,删除点击不会触发,也不会在点击输入字段时触发 flatpickr。
我有一种感觉,这是一个 jQuery 冲突问题,但只是不知道我应该如何改变它,以便所有功能相互配合。
一切都在 jfiddle 中,但这里是 HTML 和 JS:
<div id="meta_inner">
<span id="here"></span>
<span class="add">Add Group</span>
</div>
$(document).ready(function () {
var count = 1;
$(".add").click(function() {
count = count + 1;
$('#here').append('<p> Group Name <input type="text" name="groups['+count+'][post_title]" value="" /> -- Start Date : <input id="datetime_'+count+'" type="text" name="groups['+count+'][startdate]" value="" /><span class="remove">Remove Group</span><input type="hidden" name="groups['+count+'][object_id]" value="" /></p>' );
return false;
});
$("#here").on('click', '.remove', function() {
$(this).parent().remove();
});
var config = {
enableTime: true,
dateFormat: "Y-m-d H:i",
minDate: "today",
maxDate: new Date().fp_incr(365)
};
$("#here").on('click', '[id *="datetime_"]', function() {
$(this).flatpickr(config);
});
});
编辑:
根据评论中的链接帖子,修改了 jQuery(修改后的版本如上所示)。
现在一切都差不多了,但是当我单击日期字段时,flatpickr
日历会弹出并立即关闭。
当前的小提琴是https://jsfiddle.net/mao2je6k/1/
知道是什么原因造成的吗?
解决方案
当您尝试添加尚未在 Dom 中的元素的侦听器时,会发生此问题。
您在元素上添加侦听器以删除它,但在单击添加按钮后该元素附加到 DOM。
您需要在父级上添加侦听器。您可以在 jQuery 的“.live() - .delegate() .on()”方法中了解更多信息。
你的答案在这里:
** https://jsfiddle.net/wgz8pn3b/23/ **
推荐阅读
- php - 如何通过 Laravel 中的查询生成器获取唯一记录?
- java - 带转码器的 SVG 到 ByteArray(字体系列问题)
- c# - wpf - 选项卡控件内的列表视图
- ssis - SSIS C# 脚本组件:写入包变量仍然为空
- azure - VpnClientRootCertificateDataInvalid:点到站点
- reactjs - 动态更改 ANTD Radio 颜色
- react-native - 为计步器反应原生 Google Fit api
- jenkins - Docker for Jenkins 从节点中的 Docker 不工作
- sql - 查询具有多个父节点的闭包表中所有节点的所有路径
- asp.net-core - 找不到 ASP.Net Core 3.1 + OData V4 元数据