我有这个 jsFiddle:http: //jsfiddle.net/VebTY/
看起来这只是chrome中的一个问题。
当您单击页面中的某个项目时,它会添加一个文本字段,然后会弹出一个日期选择器。当您单击文本框外然后返回文本框时,浏览器会挂起 5 到 10 秒。为什么要这样做,我该如何解决?
这是我的相关代码:
$(document).on("focus", "td input[type=text]", function(e) {
e.stopPropagation();
if ($(this).closest("td").attr("data-type") === "date") {
var dt = $(this).val();
$(this).not(".hasDatePicker").datepicker();
$(this).datepicker("setDate", dt);
}
});
$(".editable").click(function(e) {
if (!$(e.target).is('input, textarea')) {
$(".editable").each(function() {
if ($(this).has("input")) {
var v = $(this).children("input.input, textarea").attr("data-orig");
$(this).text(v);
}
});
var type = $(this).attr("data-type");
var val = $(this).text();
if (type === "text" || type === "date") {
str = '<input type="text" data-orig="' + val + '" onfocus="this.value = this.value;" class="input" style="width: 100%;" value="' + val + '" /><br />';
} else if (type === "textarea") {
str = '<textarea class="input" data-orig="' + val + '" onfocus="this.value = this.value;" style="width: 100%;">' + val + '</textarea><br />';
}
str += '<input type="button" class="save-edit" value="Save" />';
str += '<input type="button" class="cancel-edit" value="Cancel" />';
$(this).html(str);
$(this).find("input[type=text], textarea").focus();
}
});