여기에 사용자가 일부 div를 클릭 할 수있는 사이트가 있습니다. 그런 다음이 코드를 사용하여 "X"를 추가합니다.jQuery/JavaScript : 동적 추가 콘텐츠를 사용한 복제
function addEx(elem, insertClass) {
var element = $(elem);
var newInsertClass = insertClass.replace('.', '');
var insert = "<span class='" + newInsertClass + "'> X </span>";
element.click(function(){
var $this = $(this);
if($this.text().indexOf("X") >= 0) {
var id = $this.attr("id");
$("#" + id + " " + insertClass).remove();
} else {
$this.append(insert);
}
})
}
"X"가 이미 있으면 제거합니다. 거기에 없으면 추가합니다. 이것은 잘 작동합니다.
사용자는 "결과 얻기"버튼을 클릭 할 수도 있습니다. 사용자가 클릭 한 div가 올바른 답변과 비교됩니다. 이것에 따르면, 정확하게 클릭했거나 너무 많이 클릭했거나 클릭을 잊어 버린 div에 클래스를 추가합니다. 이것은 또한 작동하지만 내용 ("X")은 손실됩니다. 그래서 나는이 클래스들을 위해 제공 한 CSS를 볼 수는 있지만 복제본으로 원본을 대체 한 후에 div 안의 "X"가 빠져있다. 그때 복제에 해당 클래스를 추가하고 복제와 원본을 대체, 여기에 요소를 복제
var test = $(".test");
var clone = test.clone(true,true);
function correction() {
clone.children().filter(function() {
return $.inArray('#' + this.id, forgotten) != -1;
}).addClass("forgotten").end().filter(function() {
return $.inArray('#' + this.id, toomuch) != -1;
}).addClass("toomuch").end().filter(function() {
return $.inArray('#' + this.id, correct) != -1;
}).addClass("right");
test.replaceWith(clone);
}
: 클래스를 추가하려면이 코드를 사용합니다.
제 질문은 다음과 같습니다. 어떻게 콘텐츠 손실을 방지 할 수 있습니까? 나는 그것이 "X"가 동적으로 추가 되었기 때문에 그것이라고 생각한다? 또는 .test
과 함께 하나 이상의 요소가 있습니다. 원인이 될 수 있습니까?
하! 고마워, 그 일을 했어! :-) – Sven