이 나에게 매우 간단한 요구 사항을 것 같다, 그래서 I :
var Dom = {
get: function(el) {
if (typeof el === 'string') {
return document.getElementById(el);
} else {
return el;
}
},
add: function(el, dest) {
var el = this.get(el);
var dest = this.get(dest);
dest.appendChild(el);
},
remove: function(el) {
var el = this.get(el);
el.parentNode.removeChild(el);
}
};
var Event = {
add: function() {
if (window.addEventListener) {
return function(el, type, fn) {
Dom.get(el).addEventListener(type, fn, false);
};
} else if (window.attachEvent) {
return function(el, type, fn) {
var f = function() {
fn.call(Dom.get(el), window.event);
};
Dom.get(el).attachEvent('on' + type, f);
};
}
}()
};
JQuery와 텍스트 영역에 데이터를 추가 네가 어디서 붙어 있는지 분명치 않다. html ("contentlng")에 표시되지 않은 요소를 참조한다는 점에서 기존 코드를 파악하기 위해 너무 열심히 노력하지 않았습니다. 또한 자신의 DOM 코드를 jQuery와 믹싱하는 것은 약간 의미가없는 것처럼 보입니다. 이 필요하지 않습니다. jQuery가 전혀 포함되어 있지 않지만, 그 이유를 포함하여 선택한 이유가 무엇입니까? 아니요,을 사용하십니까?
어쨌든, 다음의 짧은 함수 (a JS 객체를 사용하여) 현재 항목의 목록을 유지하고 그 목록에 대해 각각의 새로운 아이템을 확인한다. 항목을 두 번 클릭하면 제거됩니다. 대신 텍스트 영역의 내가 사업부 사용하고
<script>
$(document).ready(function() {
var items = {};
$("#lkaddlanguage").click(function(){
var currentItem = $("#textval").val();
if (currentItem === "") {
alert("Please enter a value.");
} else if (items[currentItem]) {
alert("Value already exists.");
} else {
items[currentItem] = true;
$("#txtdisplayval").append("<span>" + currentItem + "; </span>");
}
// optionally set up for entry of next value:
$("#textval").val("").focus();
return false;
});
$("#txtdisplayval").on("dblclick", "span", function() {
delete items[this.innerHTML.split(";")[0]];
$(this).remove();
});
});
</script>
<input type="textbox" id="textval">
<a href="#lnk" id="lkaddlanguage" >Add Data</a><br>
<div id="txtdisplayval" ></div>
<style>
#txtdisplayval {
margin-top: 5px;
width : 200px;
height : 100px;
overflow-y : auto;
border : 1px solid black;
}
</style>
주 (스타일은 테두리가 수직 스크롤을 할 수 있도록) : 나는 준비 문서에 넣고했지만, 당신은 당신이 맞는 볼 것을 관리 할 수 있습니다.
당신은 내가 중복 또는 빈 항목에 대한 경고를 표시하도록 코딩했지만, 분명 당신이를 제거 할 수 있습니다보고 단지 중복을 무시 (또는 자신의 오류 처리를 대체 할) 수 있듯이. 또한 입력 필드를 지우고 다시 다음 값을 입력 할 준비가 된 상태로 되돌릴 수 있다고 생각했지만, 물론 그 값을 제거 할 수도 있습니다.
근무 데모 : http://jsfiddle.net/LTsBR/1/
jQuery를 사용할 수있는 경우 왜이 자체 작성 DOM 클래스를 사용합니까?! – ThiefMaster
내가 DOM을 사용하는 이유 dobule이 텍스트 영역의 항목을 클릭하면 제거 될 것이기 때문입니다. –
하지만 jQuery는 더블 클릭을 처리 할 수 있습니다. 전혀 jQuery를 사용하지 않는 것이 좋지만, 그것을 포함하고 그것을 할 수있는 일에 사용하지 않는 것은별로 의미가 없습니다. – nnnnnn