Ruby 在 Rails - Javascript/jQuery 到 Haml

Ruby on Rails - Javascript/jQuery to Haml

我正在尝试在我的 Ruby on Rails 应用程序中实现它。唯一不起作用的是 Javascript 代码。我已经尝试过 %script 和 :javascript。但由于某种原因,它没有加载。当我将鼠标悬停在单选按钮上时,它没有显示任何内容。

Javascript/jQuery(来自 jsfiddle):

$(document).ready(function(){

$('#container').on('mouseenter', '#radiobtn', showBox);
$('#container').on('mouseleave', '#radiobtn', hideBox);

function showBox(e){
    var x = e.pageX + 20;
    var y = e.pageY + 20;
$('#hoverbox').fadeIn();
$('#hoverbox').offset({ left: x, top: y });
}
});

function hideBox(){
$('#hoverbox').fadeOut();
}

示例:http://jsfiddle.net/wrN2u/387/

拥有Javascript个文件:

:javascript
 $(document).ready(function(){
  $('#container1').on('mouseenter', '#radiobtn', showBox);
  $('#container1').on('mouseleave', '#radiobtn', hideBox);

  function showBox(e){
    var x = e.pageX + 20;
    var y = e.pageY + 20;
    $('#hoverbox').fadeIn();
    $('#hoverbox').offset({ left: x, top: y });
  }
 });

function hideBox(){
$('#hoverbox').fadeOut();
}

HAML:

!!!
 %html
  %head
   = javascript_include_tag 'options.js'

    #container1
      %input{:name => "optradio", :type => "radio", :id => "radiobtn"}option1
      #hoverbox
    #container2
      %input{:name => "optradio", :type => "radio", :id => "radiobtn"}option2
      #hoverbox2

This question 可能对您有所帮助。我还注意到在您的 js-fiddle 中 Javascript 没有缩进。如果您使用的是 HAML,那么缩进很关键。确保您的 JS 在 :javascript

之后第二行的第一个缩进处开始
:javascript
  $(document).ready( function() {
    alert('working');
  } );

或者。如果你想在 HAML 中包含一个 js file,你需要

= javascript_include_tag "my_js"

来自 here

此外,如果这没有帮助。查看您的 HAML 文件将非常有帮助。