- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 jquery 动态添加新的表单元素。由于某种原因,对 .datepicker()
的调用对我添加的新元素不起作用,但对未动态添加的旧元素起作用。如果我输入 .attr('style', 'color: red;')
而不是 .datepicker()
,它可以工作。请注意,文档就绪函数内部的原始调用有效。
这是单击添加按钮时调用的代码:
function addMulti(name) {
it = $('[name=' + name + ']');
base = it.data('baseName');
on = it.data('number') + 1;
name = base + "-" + on;
copy = it.clone()
copy.prop("name", name).attr("data-is-default", false).removeAttr('data-number').
fadeIn('slow').appendTo(it.parent());
it.data('number', on);
if(it.hasClass('date-pickable')) { // <-- This returns true, I checked.
copy.datepicker();
// Where if I add clone.attr('style', 'color: red;') it turns it red.
}
}
这是调用日期选择器时创建的所有字段:
<script type="text/javascript">
$(document).ready(function() {
$("input.date-pickable").datepicker()
});
</script>
Firebug 或 google chrome“检查元素”中没有显示任何错误。但有些奇怪的事情正在发生。如果我在 firebug consul 中输入与 document.ready 函数中相同的调用,它仍然不会使新添加的元素成为日期选择器。然而,如果我将鼠标悬停在输出上,它会选择它应该定位的元素。
$("input.date-pickable").datepicker() // What I typed in
Object[input#dp1371953134342.field-input 06/22/2013, input#dp1371953134343.field-input, input#dp1371953134342.field-input 06/22/2013, input#dp1371953134342.field-input 06/22/2013] // What it put out. The last three numbers are the IDs JQuery assigned to the added elements. I checked.
最佳答案
jQuery UI 的日期选择器将始终将 hasDatepicker
类添加到任何具有日期选择器的元素,以避免将多个日期选择器附加到同一元素。
当您克隆已经具有日期选择器的元素时,您也会获得该类,并且无法将新的日期选择器附加到克隆,因为 jQuery UI 认为该元素已经具有日期选择器。
从克隆中删除该类:
var copy = it.clone(false);
copy.removeClass('hasDatepicker').prop("name", name)
.attr("data-is-default", "false").removeAttr('data-number')
.fadeIn('slow').appendTo(it.parent());
并尽量不要将所有变量设置为全局变量。
关于javascript - 无法将日期选择器添加到新元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17257126/
我正在用 Java 编写代码,并且使用 Vaadin 8 扩展。 我有一个 Vaadin 组合盒,效果很好。但我不仅想从组合框中选择项目,还想选择书面输入。这意味着我想使用组合框作为下拉菜单以及文本编
我正在尝试将 AJAX 添加到 JQuery ListView 中并呈黄色闪烁,但我似乎无法使其正常工作。谁能指出我正确的方向? http://jsfiddle.net/zFybm/ 最佳答案 根据
我有这个样式表: .pixel{ position: absolute; height: 10px; width: 10px; background-color: #f
这是我用来将新行推送到容器的一行代码: this.$el.append(new ItemView(item).render().el); 其中item是Backbone.js model,render
我正在尝试在 anguar.js 中制作一些测试应用程序,但遇到了问题。我的 js 文件包含: live = angular.module('live',[]); live.controller('p
如何绑定(bind)页面加载后创建的新元素? 我有这样的东西 system = function() { this.hello = function() { alert
html5 新元素(页眉、导航、页脚等)在 IE 中不工作 最佳答案 您需要包含 HTML5 shiv 脚本以允许在旧版 IE 浏览器中设置 HTML5 元素的样式:http://code.googl
我是一名优秀的程序员,十分优秀!