2013-02-14 1 views
0

자바 스크립트 함수가 div를 빌드 한 후 CSS 수정에 적절한 마크 업은 무엇입니까? jquery의 .css()을 사용하는 것에 익숙하지만, js가 리소스를로드 할 때 이벤트 처리기를 만드는 방법을 모르겠습니다. 자바 스크립트는 제 3 자로부터 오는 다음과 같다 - 그것은 또한 끔찍한 인라인 스타일 작성 (변경하는 타사를 얻을 수없는 가정javascript onclick 이벤트 후 CSS 수정을위한 적절한 마크 업

<script type="text/javascript"> 
function jsfunction(){ 
    var x = (content); 
    var y = document.createElement("script"); 
    js.setAttribute("language", "javascript"); 
    js.setAttribute("type", "text/javascript"); 
    js.setAttribute("src",x + "scriptUrl"); 
    document.getElementsByTagName("head").item(0).appendChild(js); 
} 
if (window.attachEvent) {window.attachEvent("onload", jsfunction);} 
else if (window.addEventListener) {window.addEventListener("load", jsfunction, false);} 
else {document.addEventListener("load", jsfunction, false);} 
</script> 
+1

해당 코드는 CSS를 수정하지 않고 문서에 완전히 새로운 스타일 시트를 첨부합니다. 그게 당신이 의미 한 것입니까? – Blazemonger

+0

그 코드는 새로운 스타일 시트를 추가 할뿐만 아니라 포스트로드 요소를 변경하는 데 사용할 수있는 pure-JS 이벤트 리스너를 제공합니다. jsfunction을 수정하여 콜백을 추가 할 수 있다면 코드를 삽입 할 수 있습니다. –

+0

d_either, 예를 들려 줄 수 있습니까? 그것이 내가 어떻게해야하는지 묻고있는 것입니다. 나는 내 코드를 붙이는 법을 모른다. 나는 이것을 사용할 것이다 :'$ ("# divname") .css ({ 'width': '100 %', 'position': 'relative'}); ' – user2062244

답변

0

당신이 시도 할 수 있습니다, 그것은 기존의 jsfunction를 오버라이드 (override)됩니다 그것을 적용), 적용 후 CSS를 변경 코드를 기존. jsfunction은 이미 문서로드에 바인딩되어 있으므로 실행해야합니다.

이것은 테스트되지 않았으며 문서로드로 원본보다이 오버라이드가 사용되는지 여부는 확실하지 않지만 한 번 사용해 볼 가치가 있습니다.

// Keep a reference to the older function. 
var old_jsfunction = jsfunction; 

// Redefine jsfunction 
jsfunction = function() { 
    old_jsfunction.apply(old_jsfunction, arguments); 

    $("#divname").css({'width': '100%', 'position': 'relative'}); 
}; 
+0

불행히도, 그것은 나를 위해 작동하지 않았다. :-(아마도이 함수는이 함수가 가져 오는 스크립트에서 div가 생성되기 때문에 발생했을 것입니다. – user2062244

+0

jsfunction을 제공 할 때 제 3자를 수정할 수있는 방법이 있습니까? –