2012-07-22 4 views
0

의심 할 여지없이 구문 때문에 함수에 변수를 전달하지 않는 JavaScript 하이퍼 링크가 있습니다. 누군가 실수를 일으킬 수 있습니까?변수를 함수에 전달하기위한 javascript 구문

jsfiddle : http://jsfiddle.net/kSVVX/

JS

function follow(id){ 
    alert(id); 
} 

HTML

<a href='javascript:void(0);' onclick= 'follow('1');'><img src='images/test.gif' border=0 alt='follow'></a> 

참고 : 나는 모든 아포스트로피를 사용하고 그 이유는이 링크가 실제로 PHP를 어디에 긴에서 에코지고 있다는 것입니다 문자열은 인용 부호로 묶여 있습니다 (문자열의 특정 항목은 아포스트로피로 표시되어야합니다). 나는 이것이 문제의 근원이라고 느끼지만, 나는 성공하지 못했습니다. 주위에 구두점을 변경하여 문제를 해결합니다.

의견을 보내 주셔서 감사합니다. 당신은 자바 스크립트 문자열이에 포함 은 HTML 속성 값을 구분하는 ' 문자를 사용하는

+0

* 자바 스크립트 php *의 구문? PHP와 어떤 관련이 있습니까? –

+0

제목이 편집되었습니다. PHP에서 따옴표를 사용하여 반향되고 있다는 것을 의미하지만, 이것이 PHP에 관한 것이 아닙니다. – user1260310

답변

5

이 결과 :.

onclick= 'follow(' 

다음 중 하나를

  • 피 본질적인 이벤트 속성 (어쨌든 수행해야합니다, unobtrusive JavaScript 권장).
  • 를 사용하여 다른 문자는 속성 값의 데이터에 사용하는 따옴표를 포함하는 (onclick= 'follow("1");')
  • 를 사용하여 HTML 엔티티 속성 값 (onclick="follow('1');") 또는 문자열을 구분하는 (onclick= 'follow(&#39;1&#39;);')
+0

이것은 모두 따옴표로 구분 된 PHP echo 문 안에 있으므로 따옴표를 사용하면 그 문을 방해합니다. html 접근 방식이 효과가있을 것이라고 생각합니다 ... 어포 스트로피에서 벗어나 백틱을 사용하는 방법이 있다고 생각하지 않습니까? – user1260310

+0

@ user1260310 - PHP는 문자열에서 인용 문자를 이스케이프 처리하는 구문을 사용합니다 ... 그러나 서로 중첩 된 언어는 코드를 유지하기가 어려우므로 좋은 방법입니다. 솔루션 목록의 맨 위 옵션은 이유가 있기 때문에 맨 위에 있습니다. 내장 이벤트 속성을 사용하지 마십시오. 외부 JavaScript를 사용하십시오. PHP 문자열에 HTML을 넣지 마십시오. PHP 모드를 빠져 나오거나 ('?>'), 템플릿 언어를 사용하여 HTML을 출력하십시오. – Quentin

+0

jsfiddle을 따옴표로 변경 했는데도 여전히 잘못된 것 같습니다 : http://jsfiddle.net/kSVVX/2/ – user1260310

관련 문제