0

首先,我的 Jquery 知识非常有限,但我正在阅读和练习以解决这个问题,所以如果这是一个非常基本的问题,请多多包涵。正如标题所述,我在我的 Rails 应用程序中收到一条错误消息

  $(".share a").button is not a function

我的 application.js 文件包含这个

  $(function() {

  $(".share a")
  .button()
  .click(function() {

    var a = this;

    // first set the title of the dialog box to display the folder name
    $("#invitation_form").attr("title", "Share '" + $(a).attr("folder_name") + "' with others");

    // a hack to display the different folder names correctly
    $("#ui-dialog-title-invitation_form").text("Share '" + $(a).attr("folder_name") + "' with others");

    // then put the folder_id of the share link into the hidden field "folder_id" of the invite form
    $("#folder_id").val($(a).attr("folder_id"));

    // the dialog box customization
    $("#invitation_form").dialog({
      height: 300,
      width: 600,
      modal: true,
      buttons: {
        // first button
        "Share": function() {
          // get the url to post the data to
          var post_url = $("#invitation_form form").attr("action");

          // serialize the form data and post it the url with ajax
          $.post(post_url, $("#invitation_form form").serialize(), null, "script");

          return false;
        },
        // second button
        Cancel: function() {
          $( this ).dialog( "close" );
        }
      },
      close: function() {
      }
    });

    return false;
  });

});

我的视图页面包含这个来调用jquery(我认为)

  <div class="share">
        <%= link_to "Share", "#", :folder_id => folder.id, :folder_name =>       folder.nameunless @is_this_folder_being_shared %>
      </div>

谁能告诉我为什么我会收到这个错误,因为我可以看到它应该可以工作,当我点击一个标记为共享的按钮时,我应该会在我的邀请表单中出现一个弹出窗口。

任何帮助表示赞赏,因为我现在被困在这一点上 - 最后我被告知我可能忘记包含 Jquery UI,但我的应用程序中有这个库,尽管我开始怀疑我是否有 2 个冲突的库jquery-ui 和 jquery-ui-1.8.9.custom.min.js 在同一个目录?有谁知道这是否可能是这种情况?

这是我的资产管道

//= require jquery
//= require jquery-ui
//= require jquery_ujs
//= require twitter/bootstrap
//= require_tree .

和我的javascripts中的jquery-ui-1.8.9.custom(那里没有其他UI)

4

1 回答 1

1

由于jquery-ui.js正在加载,但浏览器 javascript 引擎找不到该功能button,问题可能是由于您正在使用的 jquery-ui 构建中遗漏了“按钮”小部件。您可以通过构建一个包含小部件的新脚本并使用它来代替当前的jquery-ui.js. 如果它有效,那么这就是你的答案。

于 2012-04-23T20:03:49.243 回答