2012-02-11 6 views
9

레일 나는 상단에 부트 스트랩 스타일의 오류 또는 성공 경고가 내 화면 (메시지 == "오류"의 여부를 첫 번째 단어를 기반으로. 내가/자산에 'bootstrap.js'& '부트 스트랩-alert.js'을 추가 한 자바 스크립트 폴더에 있습니다. 여기 부트 스트랩 경고 해고,</p> <p>(작거나 지금 말대꾸 사용하지 않는 자산/스타일 시트에 CSS 파일) 레일 3.2 2.0 부트 스트랩 트위터를 사용하여 3.2

코드입니다 내 레이아웃 :

<% flash.each do |name, msg| %> 
    <% if msg[0..4] == "Error" %> 
    <div class="alert alert-error fade in"> 
    <% else %> 
    <div class="alert alert-success fade in"> 
    <% end %> 
    <a class="close" data-dismiss="alert" href="#">&times;</a> 
    <%= msg %> 
<% end %> 

내 자산/자바 스크립트/application.js 있음 :

$(".alert-message").alert() 
$(".alert-message").alert('close') 

잘 모르겠습니까? .alert/.alert-error도 시도했다.

닫기 기호를 클릭해도 아무 일도 일어나지 않습니다. 분명히 나 빠졌지 만, JS/w Rails를 처음 사용하는 사람은이 사실을 알 수 없습니다. 어떤 조언을 위해

Uncaught TypeError: Object [object Object] has no method 'on'

많은 감사 : 크롬 JS 콘솔에서 나는 부트 스트랩-alert.js 데이터 API에 대한 것 같습니다이 오류 메시지를 참조하십시오!

+0

이 질문에 '제출'을 클릭하면 문제가 발생합니다 ... 문제는 'jquery.js'와 'jquiery-ui.js'를 javascripts 폴더에 두었 기 때문입니다. 충돌하는 이름/수업. jquiery 파일을 제거한 후 js 오류가 페이지를로드 할 때 사라지고 경고 해고 작업이 실행됩니다 ... d' oh – bobomoreno

+0

이 답변을 추가하고 받아 들여야합니다 :) – Pierre

답변

4

의견에서 언급했듯이이 문제는 경쟁하는 Javascript 파일로 인해 발생한 것으로 보입니다.

문제는 'jquery.js'와 'jquery-ui.js'를 Javascripts 폴더에 두었 기 때문에 이름/클래스가 충돌하고 있어야합니다. JQuery와를 제거한 후

오류 페이지 및 경고 - 해고로드에 사라진 JS 내가 같은 문제가 있고, 당신의 응답 bobomoreno 보았다

16

지금 작동 파일,하지만 그것은 작동하지 않았다. 나중에 Bootstrap의 최신 버전에 jQuery 1.7.x이 필요하다는 것을 알았고 이전 버전의 jQuery에서는 작동하지 않습니다.

+2

Thanks! D – rjha94

+1

'gem jquery-rails ~> '2.0'(jQ 1.7.x를 얻음)을 지정했지만 여전히 close 이벤트가 발생하지 않도록 내 Gemfile을 업데이트했습니다. :-( –

+0

레일스에 관해서는 잘 모르겠지만 새로운 jQuery 버전을 가리 키도록 클라이언트 참조를 업데이트 했습니까? – Dofs

6

같은 문제가 있었는데 경고 해고가 제대로 작동하지 않았습니다. 해결책은 bobomoreno 's와 유사 하, 그러나 동일 하. bootstrap의 javascript 대신에 필요한 사용자 지정 항목이있는 app/assets/javascripts/bootstrap.js.coffee 파일이있었습니다. 이름을 bootstrap-custom.js.coffee으로 변경하여 문제를 해결 했으므로 부트 스트랩의 파일이 올바르게 필요했습니다.

+1

이것은 내 대답이었고 실제로 의미가 있습니다. jquery 및 jquery 버전을 옮기는 작업은 청어입니다. – steakchaser