2014-12-17 7 views
0

사용자가 ESC 키를 누를 때 나타나는 다음 javascript를 div에 추가하려고합니다. 내가 사용되는 자바 스크립트의 값을 표시하기 위해 자바 스크립트를 얻을 수없는 것 :jquery로 div에 javream 추가하기

$("#json").hide(); 
    $(document).keydown(function (e) { 
    if (e.keyCode == 27) { 
     $("#json").append("<script type="text/javascript"> + "window.location.href = '/editorialPortal' + '?' + this.id + '=' + this.options[this.selectedIndex].value;" + "</" + script>").toggle(); 
    } 
}); 

내가 탈출 문자열 또는 따옴표를 누락 어디 모르겠어요.

+0

무엇? 사용자가 이스케이프를 누르면 새 페이지로 이동 하시겠습니까? – tymeJV

+0

아니요, JavaScript가 현재 URI와 드롭 다운에서 다른 매개 변수를 가져옵니다.이 매개 변수는 드롭 다운 선택에서 결과를 제공하는 데 사용됩니다. 이 자바 스크립트는 기본 사용자로부터 숨겨져있는 선택 항목을 기반으로 현재 URI를 표시해야합니다. – Matt

+0

글쎄,'this'는 드롭 다운을 언급하지 않고'document'를 참조하고 페이지 위치를 변경하기 위해'window.location.href'를 사용하고, 요소를 감추고 보여주기 위해'toggle'을 사용합니다. .. 많이 잘못 됐어. 당신의 최종 목표는 무엇입니까? – tymeJV

답변

0

나는 문제가 따옴표와 함께 생각합니다.

또한 jQuery를 포함시켜야합니다. 위의 코드는 정의되지 않은 변수 this.options[this.selectedIndex].valuethis.id에 대한 오류를 제외하고는 작동합니다. 스크립트 태그를 깨는 것은 jsfiddle을 행복하게 만드는 것입니다.

+0

단순히 기본 window.location.href를 사용하더라도 아무 것도 얻을 수 없습니다 ... – Matt

1

큰 따옴표로 문자열을 연 이후 당신이 (문자열에 큰 따옴표를 사용하여 작은 따옴표를 열 수 없습니다,

또한 e.which보다는 e.keyCode을 시도하고 단지 작은 따옴표 때를 사용 '+'를 사용하거나 전체 문자열을 닫으려는 경우). 이 예에서

$('#json').append('<' + script type="text/javascript">window.location.href = "/editorialPortal?' + this.id + '=' + this.options[this.selectedIndex].value + '" </' + 'script>').toggle(); 

, 나는 문자열을 정의하는 작은 따옴표를 사용하므로 따옴표는 내부에 사용할 수 있습니다

+0

여전히 작동하지 않습니다 : http://jsfiddle.net/mattography/c7qbxz7s/1/ – Matt