jquery умирает после вызова функции replaceWith
У меня есть веб-страница, которую посетители могут изменить, используя формуляры на этой странице (своего рода вики). Часть кода, которая вызывает у меня проблемы, приведена ниже. Этот код работал нормально, но когда я добавил строку кода, которая выглядит закомментированной (JQuery replaceWith
вызов) браузер выполняет инструкцию правильно, но затем страница перестает отвечать на любые события, которые вызывают выполнение кода javascript/jquery. Есть идеи что не так?
$(document).ready(function(){
$("#envia").click(function(){
objectiu = parent.frames[2].document.getElementById(parent.frames[2].id);
substitut = '<H1>' + document.getElementById("txt1").value + '</H1>';
// $(objectiu).replaceWith(substitut);
$.post("xines.py",
{
tag: parent.frames[2].tag,
par: parent.frames[2].id,
text: document.getElementById("txt1").value, // TEXT
codi: document.getElementById("txt2").value, // COL·LABORADOR
idioma: parent.frames[0].document.getElementById("txt3").value, // IDIOMA
},
function(data,status){
parent.frames[3].document.getElementById("myp").innerHTML= data;
parent.frames[2].document.getElementById(parent.frames[2].id).style.color='#000000';
parent.frames[2].document.getElementById(parent.frames[2].id).innerHTML = document.getElementById("txt1").value;
document.getElementById("txt1").value = "";
document.getElementById("txt1").style.backgroundColor = '#FFFFFF';
});
});
});
Каждый элемент веб-страницы имеет уникальный идентификатор, поэтому невозможно, чтобы идентификатор относился к нескольким элементам на веб-странице, идентификатор назначается во фрейме 2 следующим образом:
$("p").click(function(){ // FUNCTION FOR CLICK ON <P>
id = this.id;
this.style.color = '#0000FF';
parent.frames[1].document.getElementById("txt1").value = this.innerHTML;
tag = this.nodeName;
click_doc();
});
$("h1").click(function(){ // FUNCTION FOR CLICK ON <H1>
document.getElementById(id).style.color='#000000';
this.style.color = '#0000FF';
parent.frames[1].document.getElementById("txt1").value = this.innerHTML;
tag = this.nodeName;
id = this.id;
click_doc();
});
1 ответ
Решение
objectiu = parent.frames[2].document.getElementById(parent.frames[2].id);
substitut = '<' + noutag + ' id="' + bakid + '">' + text + '</' + noutag + '>';
if (noutag!=parent.frames[2].tag) {
$(objectiu).replaceWith(substitut);
}