我正在嘗試調試這個(不完整的)腳本,但它的行爲不一致。主要問題是當我點擊某件物品時,有時$(editObj).removeAttr('style');
運行,有時不運行。通過Chrome檢查器,我可以看到每種情況下的editObj變量都已正確定義,但並不總是刪除其內聯樣式屬性。有時候,有時候不會。無法確定原因。爲什麼只有選擇性地運行jQuery函數?
我用這段代碼搞了一點我的元素。也許關於它的一些事很明顯;無論如何,我會欣賞一些關於爲什麼會出現這種不可預測的想法!
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;
}
我以爲我曾嘗試過,但..它的工作!對我來說邏輯表明,那裏的表現應該沒有什麼區別..是我擁有它的方式,還是什麼? – Damon
@Damon:老實說,我不知道。我會假設你的方式應該工作(這就是我將要寫的),但過去我已經有太多的麻煩了,所以我只是訴諸'.attr('style',''); '。這可能是jQuery中的一個錯誤。不知道。 –