2010-01-13 3 views
1

안녕하세요, 직접 자바 스크립트 대신 jQuery로 사용하는 코드가 있습니다. 희망 너희들은 내가 그것을 변환 할 수 있습니다 : 파이어 폭스는이 두 번째 줄에 사용하는 경우 sub가 null이라고 말해 때문에일부 코드를 jQuery로 변환

var sub = document.getElementById('submit'); 
sub.parentNode.removeChild(sub); 
document.getElementById('btn-area').appendChild(sub); 
document.getElementById('submit').tabIndex = 6; 
if (typeof _some_var != 'undefined') { 
    document.getElementById('some-textarea').value = _some_var; 
} 
document.getElementById('something').style.direction = 'ltr'; 

나는이 작업을 수행 할 수있는 이유입니다. 이 코드는 submit 단추가 나타나기 전에 실행되기 때문에 발생합니다. 그래서 자연스럽게 모든 준비가 완료된 후 코드를 실행하기 위해 jQuery를 사용하고 싶습니다. 그렇습니다. 직접 자바 스크립트에서도 그렇게 할 수 있다는 것을 알고 있지만, jQuery를 사용하는 것이 좋습니다.

감사합니다.

+0

당신이에 appendChild 사용하는 경우 먼저 현재 위치에서 아이를 제거하고 오직 새 위치를 추가하기 때문에로 removeChild를 호출 할 필요가 없습니다. – rahul

+0

펄스를 보내 주셔서 감사합니다.이 코드를 상속 받았다고 말했지만 불필요한 코드를 방지하기 위해이 변경 사항을 확실히 적용 할 것입니다. 다시 한 번 감사드립니다! –

+0

Ooh Ooh, 내 것을 읽으십시오. 항상 dom 조작을 위해 JQuery를 사용하는 것이 좋습니다. 그렇지 않으면 교차 브라우저에서 작동 할 것이라고 신뢰할 수 없습니다. – orokusaki

답변

3

이 목적으로 jQuery를 사용할 필요가 전혀 없습니다. 당신을 가정하면 이미로드 이벤트 핸들러가 없습니다 :

window.onload = function() { 
    // your code 
}; 

또는 오른쪽 끝 body 태그 전에 던져, 또는 제출 버튼 후 소스에 어느 곳보다 구체적으로 - 그것은 정말 더러운 아무것도 없다.

<script src="your-code.js"></script> 
</body> 

그러나, 빠른 jQuery를 다시 쓸

..

$(function() { 
    $('#submit').appendTo('#btn-area').attr('tabIndex', 6); 
    if (typeof yourVar != 'undefined') { 
     $('#textarea').val(yourVar); 
    } 
    $('#something').css('direction', 'ltr'); 
}); 

테스트하지 않았다.

+0

나는 꼬리말에이 문제를 언급하여 문제를 해결했다.이 코드를 jQuery로 사용하는 것이 더 합리적이라고 생각했다. 그러나 필자는 그렇게 할 필요가 없다고 생각한다. –

+0

그래서이 상황에서 jQuery를 사용하면 불필요한 오버 헤드가 추가 될 것이라고 추측하고 있으므로 사용하지 않을 것입니다. 전환에 관계없이 주셔서 감사합니다. –

+0

많은 스크립트가 있으면 거의 모든 DOM 스크립팅과 일관성이 없습니다. –

1

는 여기있다 :

var sub_html = $('#submit').html(); 
$('#submit').html(''); 
$('#btn-area').html(sub_html); 
$('#submit').attr('tabindex', 6); 
if(typeof _some_var != 'undefined') 
{ 
    $('#some-textarea').val(_some_var); 
} 
$('#something').css('direction', 'ltr');