2011-02-07 5 views
1

그래, 난 포스트 here더 많은 변환 JQuery와 객체

를 참조하고 나는 그것을 시도했지만 문제가, 내 JQuery와 객체가 더이처럼 보이는 :

var $foo = $('<ul><li id="' + line.id + '" label="' + label + '" rel="file"><a href="#">' + line.title + '</a></li></ul>'); 
$foo.click(function() { openLink(line.url) }); 
$foo.appendTo($myDiv); 

$ myDiv 완전히 채워이다 나는이 작업을 수행 할 수 있습니다

var html = $('<div>').append($('#foo').clone()).remove().html(); 

그리고 사랑스러운 HTML을 모두 볼 수 있지만 클릭 물건이 보존됩니다 나도 몰라. DOMStore의 전체 DOM 수정 사항을 localStorage에 저장하고 싶습니다. 그래서 꽤 정적이어서 좀 빨리 검색 할 수 있습니다. 나는 그것과 모든 속성을 저장할 수 있어야하고, 다시 그것을 꺼내서 그것을 클릭하고 모두 복원 할 수 있어야합니다.

의미가 있습니까?

+0

함수를 문자열로 저장할 수 없습니다. – SLaks

+0

@SLaks : 실제로, 당신은 할 수 있었다! – jAndy

답변

3

이렇게하는 유일한 방법은 인라인 이벤트 처리기를 사용하는 것입니다. 이는 나쁜 (느린) 아이디어입니다.

대신 모든 이벤트 처리기를 live 처리기로 변환 할 수 있습니다. 그런 다음 DOM을 변경 한 후 리 바인드하지 않고도 일치하는 모든 요소에 자동으로 적용됩니다.

+0

동의합니다. 클래스 이름으로 바인딩 할 항목을 식별하고 UL 또는 직접 클릭 할 속성에 line.url을 저장합니다. –

+0

확실히 여기가는 방법. 구현 세부 사항은 ** [공식 문서] (http://api.jquery.com/live/) **를 확인하십시오. – lsuarez

+0

오, 좋은. 따라서 대신 "$ foo.click (function() {openLink (line.url}));" 좀 더 동적 인 "라이브"핸들러를 구현하겠습니까? 나는 그것을 시도 할 것이다! 굉장해, 고마워! – gdanko