Ajax Bootstrap Popover: Object #<Object> has no method 'popover'

10,829

Solution 1

I had this problem after running the rails twitter bootstrap generator, then switching to bootstrap-sass.

It was caused by a filename collision because boostrap-sass references bootstrap.js instead of twitter/bootstrap, which clashes with the generated file.

Just rename the generated app/assets/javascripts/bootstrap.js.coffee to something else, eg app/assets/javascripts/bootstrap_and_overrides.js.coffee, and you're good to go.

Solution 2

I had this problem because i was trying to use the jQuery from bootstrap while also importing jQuery from googleapis (like it says in http://railscasts.com/episodes/205-unobtrusive-javascript) if you're using bootstrap, you'll have jquery

Solution 3

i had the same problem . you might be loading jquery AFTER loading bootstrap.js . for some reason the sequence is important

</footer>
<script src="<?php echo "http://".$_SERVER['HTTP_HOST']. $_SERVER['REQUEST_URI']."assets/bootstrap/js/jquery-1.7.1.min.js" ;?>"></script>   
<script src="<?php echo "http://".$_SERVER['HTTP_HOST']. $_SERVER['REQUEST_URI']."assets/bootstrap/js/bootstrap.js" ;?>"></script>
<script type="text/javascript">
$(document).ready(function(){
    create_project_form=$('form#create_project_form');
    $('button#create_project_button').popover({title:'New Project',content:create_project_form});
});
</script>
</body>
</html>

loading jquery before bootstrap did the job for me . hope that helps

Solution 4

I had the same problem. I was loading jQuery.js twice... Narf...

Share:
10,829
Vesper  Bled
Author by

Vesper Bled

Updated on June 13, 2022

Comments

  • Vesper  Bled
    Vesper Bled about 2 years

    I'm trying to build an Ajax Bootstrap Popover to display a page that contains a rating star system.

    The javascript here work nice the first time. Then I have this error:

    Uncaught TypeError: Object # has no method 'popover'

    I'm not really good in jQuery, but I guess it seems to be due to the ajax call, but I can't find where the problem is.

    $(".myRate")
            .popover({
                offset: 10,
                trigger: 'manual',
                animate: false,
                html: true,
                placement: 'top',
                template: '<div class="popover" onmouseover="$(this).mouseleave(function()  {$(this).hide(); });"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"><p></p></div></div></div>'
    
            });
    $('.myRate').mouseenter(popoverDisplay);
    
    popoverDisplay = function() {
    var el = $(this);
    var _data = el.attr('alt');
    $.ajax({
         type: 'GET',
         url: 'notes.php',
         data: _data,
         cache: false,
         dataType: 'html',
         success: function(data) {
            el.attr('data-content', data);
            el.popover('show');
         }
      });
    }
    

    I don't get what I am doing wrong... Any idea ?

    EDIT:

    After searching, it seems that, it's the loaded pages which causes this error.

    Exactly this part:

    It seems that loading jquery-1.7.2.js make the bug because if I remove it, the error disapear. Problem: I can't delete it because without it jRating doesn't work anymore :/

  • Vesper  Bled
    Vesper Bled almost 12 years
    I finaly ended with an other style of display so I don't need this anymore but didn't find a way to fix it :/
  • Tyrel Richey
    Tyrel Richey almost 11 years
    Same problem with twitter bootstrap front end colliding with rails admin back end. Fixed it thank you!