2010-08-19 4 views
0

.before()을 사용하는 코드 조각이 있고 이동하는 코드에 .before()가 다시 실행되는 인라인 자바 스크립트가 있습니다. .before() 폼이 자바 스크립트 코드를 다시 실행하는 것을 막을 수있는 방법이 있습니까?jQuery .before() javascript를 다시 실행하십시오.

답변

3

.before()이라는 요소를 가져 와서 스크립트 태그를 제거 할 수 있습니다. 당신이 재배치하고있는 HTML에서 자바 스크립트를 이동 이외에

$(newHTML).find('script').remove().end().insertBefore(whereToInsert); 
+0

yea, 나는 실제로 그것을 시도하고 작동하지만이 문제는 jquery UI의 일부이며 다른 것들이 엉망이 될지 확실하지 않습니다. 나는이 일을 끝낼지도 모른다. – ryanzec

+0

jQuery UI의 메서드에는 인라인 자바 스크립트가 포함되어 있지 않으므로 이동하는 것이 좋습니다. – Matchu

1

(안된), 난 당신이 실행 때 확인 코드의 첫 번째 실행 후 true에 플래그를 설정 수도있을 것 같군요.

0

스크립트를 분리하고 요소를 이동 한 다음 다시 첨부 할 수도 있습니다 (필요한 경우). 다음과 같은 것 :

var theScript = $('#foo').​​​​​find('script').detach(); 
var everythingElse = $('#foo'); // everything minus the script(s) 
$('#baz').before(everythingElse); // Document reflow happens 
everythingElse.append(theScript); // now add it back in? 

테스트를 거치지 않았지만 아마도 가치가 있을지 모릅니다.

관련 문제