我真的很奇怪的行爲。我有這個代碼(我刪除了無關的代碼)。HTML jQuery的功能不工作,但replaceWith確實
$(function() {
function get_translations() {
$('#translations tr').not(':eq(0)').remove();
var item = {
context: "1: context",
term: "2: term",
translation: "3: translation"
};
var tr = $('<tr/>').
append('<td class="context">' + (item.context || ' ') + '</td>').
append('<td class="original-string">' + item.term + '</td>').
append('<td class="translation translated-string">' + item.translation +
'</td>').
append('<td class="delete-col"><button class="'+
'delete translation-delete">X</button></td>').
data('term', item.term || '').
data('translation', item.translation || '').
data('context', item.context || '').
appendTo('#translations');
}
get_translations();
$('td.translation').live('click', function() {
var $this = $(this);
if ($this.find('textarea').length == 0) {
var text = $this.empty().parent().data('translation');
//$this.data('content', text).empty();
$this.html('<tex' + 'tarea>' + text + '</text' +
'area><button>Save</button><a href="#" class="_cancel">Cancel</a>');
//appendTo($this);
}
});
$('td.translation button').live('click', function() {
var td = $(this).parent();
var tr = td.parent();
console.log(td);
td.html('foo');
//td.replaceWith('<td class="translation translated-string">foo</td>');
});
});
在$('td.translation button')
處理td.html('foo');
不工作,但td.replaceWith('<td class="translation translated-string">foo</td>');
一樣。沒有錯誤,它什麼都不做。
我嘗試重新使用該此行爲:
$(function() {
$('table').append('<tr><td>:empty</td></tr>');
$('td').live('click', function() {
var tr = $(this).parent();
$(this).html('<textarea></textarea><a class="foo" href="#">a:</a>');
});
$('.foo').live('click', function() {
var td = $(this).parent();
var tr = td.parent();
td.html(':empty');
return false;
});
});
但上面的代碼工作。
我可以使用replaceWith
,但我怎麼知道爲什麼html
函數不起作用。任何人都知道爲什麼?
UPDATE:當我添加這個window.td = td;
我可以從控制檯調用html,它的工作。
比「不工作」更具體 - 什麼都不發生,你會得到一個Javascript錯誤,你會得到意想不到的結果嗎? –
預期結果是什麼? '.html('foo')'不會創建一個帶有foo類的DOM元素當然... – gdoron
@AonyonyGrist @gdoron它應該做'foo'但它不會,沒有任何事情發生,當我做' td.replaceWith('foo');'然後它將td更改爲foo。在我的工作代碼中,它是內聯編輯。 – jcubic