2012-11-14 4 views
1

정상적으로 작동하는 데 사용됩니다. 빵 부스러기를하려고합니다. 전역 네임 스페이스에 "breadcrumb"라는 JS 함수가 있습니다. 그것은 유일한 매개 변수로 문자열을 허용합니다JS 함수가 Javascript를 예상되는 Ajax 게시 대신 브라우저로 반환 중입니다.

<a href="javascript:breadcrumb(\'<%= brand_attribute.attributename %>\');"><%= value %></a> 

미세 지금까지 다음과 같이

function breadcrumb(attr) { 
    hash = { type: "POST", url: "brands/get_attributes", data: $("#attributeform").serialize() }; 
    $.ajax(hash); 
    return false; 
} 

내가 정의 된 HTML 페이지 내 이동 경로 링크가 있습니다. 내가 이동 경로 링크를 클릭 때, 나는 URL이 얻을 :

javascript:breadcrumb('Whirlpool'); 

그리고 어떤 함수가 반환이다 "false"로 단어, 빈 페이지입니다. 내 질문은, 왜 실제로 javascript 함수 자체를 탐색하는 것입니다? Ajax 결과가 렌더링되지 않는 이유는 무엇입니까?

+2

인라인 자바 스크립트 대신 클릭 이벤트를 바인딩 할 수는 없습니까? – Chad

+0

Chad, 나는 당신이 말한 것을했고, 링크의 속성에 param을 넣는 것을 끝내었다. 그것은 작동합니다! 내가 당신을 수여 할 수 있도록 답을 넣어주세요. (그리고 100 % 응답 등급을 유지하십시오) ;-) – AKWF

답변

1

사용의 onclick보다는 HREF. 또한 내 OCD는 다음 구문 변경을 제안합니다.

var hash = { //use braces to define an object 
       type: "POST", 
       url: "brands/get_attributes", 
       data: $("#attributeform").serialize() 
}; 
0

< > 태그의 href에 void (0)가 포함되어 있지 않기 때문입니다. 명령문이 끝나면 breadcrumb 함수의 값이 브라우저로 리턴됩니다.

변경해보십시오 :

href="javascript:breadcrumb(\'<%= brand_attribute.attributename %>\');" 

에 :

href="javascript:breadcrumb(\'<%= brand_attribute.attributename %>\');void(0);" 

편집 : 나는 또한 jakubka의 대답에 동의, 당신의 링크의 OnClick 속성과에 호출 자바 스크립트를 유지하는 좋은 연습이 될 것이다 href에 반대했다. 그래서

,

href="#" onclick="breadcrumb(\'<%= brand_attribute.attributename %>\');" 
1

변경 hrefonclick에 :

<a href="#" onclick="return breadcrumb(\'<%= brand_attribute.attributename %>\');"><%= value %></a> 
관련 문제