2013-05-24 3 views
0

개체에 자바 스크립트 코드를 저장 한 다음 사용자가 단추를 클릭 할 때 해당 코드의 일부를 실행하려고합니다. 지금까지 나는 이것을 가지고있다 :반복하지 않고 코드를 실행하고 텍스트로 표시

var exampleCode = { 
    test: "$('body').css('background: pink');" 
} 
$(document).ready(function(){ 
    console.log(exampleCode.test); 
    exampleCode.test; 
}); 

나는 두 가지 질문이있다. 첫 번째 질문은 실제로 어떻게 실행 시킬까?

$('body').append('<div class="whatever"></div>'); 

이 늘 개체 값 주위에 따옴표 잘 재생 : 내 자바 스크립트에 일부 HTML을 갖고 싶어 내가 할 일을 두 번째는

는 다음 코드 줄처럼 말 .

내 목표는 코드를 두 번 쓰지 않고 동일한 페이지에서 코드를 실행하고 텍스트로 표시 할 수 있기 때문에 다른 제안이 있으면 좋을 것입니다.

답변

6

당신은 acually는 "코드의 문자열", 그래서 당신의 코드를 실행할 수있는 유일한 방법을 할 수없는이 작업을 수행하는 것입니다

var exampleCode = { 
    test: function(){$('body').css('background', 'pink');} 
} 
$(document).ready(function(){ 
    console.log(exampleCode.test); //No "()" for the function 
    exampleCode.test(); 
}); 

당신은 객체에 함수를 저장하고 당신이 그것을 호출합니다. 당신이 함수의 텍스트를 추가하려면

,이 작업을 수행 할 수 있습니다

$('body').append(String(exampleCode.test)) 

이 기능을 추가합니다, 그러나

그러나 더 형식화하는 없습니다, 당신은 자바 스크립트 기능을 사용할 수 있습니다 .replace() 약간의 형식을 지정해야합니다.

//Really weak example, can be optimised 
var txtCode = String(exampleCode.test) 
txtCode = txtCode.replace(';', ';<br/>') 
txtCode = txtCode.replace('{', '{<br/>') 
txtCode = txtCode.replace('}', '}<br/>') 
var code = $('<code/>').html(txtCode) 
$('body').append(code) 


추가 정보 : 당신은 "\"로 문자를 탈출 할 수 있습니다.

? " 그것 뿐이다 방법 "와 alert("See that : \"!") 경고를 나타납니다 경고를 나타납니다 alert('How\'s it?')을하는 "그 참조 :"! "

+0

고마워! (내가 뭔가를 추가하지 않으면, 고마워한다.) – dezman

+0

질문에 답장을하지 못했고, 내 대답을 편집하여 페이지에 코드를 추가했습니다. –

관련 문제