我正在尝试调试这个(不完整的)脚本,但它的行为不一致。主要问题是当我点击一个项目时,有时$(editObj).removeAttr('style');
会运行,有时则不会。通过Chrome检查器,我可以看到每种情况下的editObj变量都已正确定义,但并不总是删除其内联样式属性。有时,有时不是。无法确定原因。
我的代码中有点不合适。也许有关它的事情很明显;无论我如何理解为什么会发生这种不可预测的事情,我都会感激不尽!
var editObj = null;
var inputType = 'text';
var input = '#textEdit';
var formId = '#form_undefined'
$(function() {
$("#textEdit").click(function(event) {
event.stopPropagation();
});
$('body').click(function(event) {
if (editObj){
//textedit contents to editobj and
if (inputType == 'text'){
$(editObj).text($("#textEdit").val());
}
$("#textEdit").removeAttr('style').hide();
$(editObj).removeAttr('style');
var previewId = $(editObj).attr('id');
var formId = previewId.replace('bzm', 'form');
$("#" + formId).val($("#textEdit").val());
//ajax modify database
editObj = null;
}
});
$(".editable").not("video, img, textarea")
.click(function(event) {
event.stopPropagation();
loadEditor($(this));
});
});
function loadEditor(element){
$("#textEdit")
.copyCSS(element)
.offset($(element).offset())
.css("display", "block")
.val($(element).text())
.select();
$(element).css("color", "transparent");
editObj = element;
}
答案 0 :(得分:1)
过去我遇到过麻烦.removeAttr('style');
实际上没有删除所有内联样式。
使用
$(editObj).attr('style', '');
而不是
$(editObj).removeAttr('style');
答案 1 :(得分:0)
我看到任何初始化e editobj变量的代码..可能是我缺少安东尼..无论如何编辑obj的空存的机会是什么..只需在click函数中放置一个日志语句,以便始终记录你的editobj和看看它是否为空smtimes