-1

少し前に、JQuery 1.8.3 を使用して Balloon プラグインを作成しました。

JQuery 1.8.3 から JQuery 1.9.1 に更新すると、プラグインが機能しなくなりました。

バルーンはもう表示されません。1.8.3 に戻しましたが、動作します。

何が間違っているのか理解しようとしましたが、見つかりません。

誰か助けてくれませんか?これは私のコードです:

    (function ($) {
      $.fn.Balloon = function (options) {
    var defaults = {
          balloon: "",
          class: "Balloon",
          click: false,
          id: "Balloon",
          sensible: false,
          x: -4,
          y: -40
        };
        var options = $.extend({}, defaults, options);
        var balloon;
        $(this).each(function () {
          var title = $(this).attr("title");
          if (title == undefined) return;
          $(this).hover(function (e) {
            $(this).removeAttr("title")
            balloon = "<div id='{id}' class='{class}'><span class='Text'>{content}</span><span class='Background'></span></div>"
            if (options.balloon == "") {
              balloon = balloon.replace("{class}", options.class).replace("{id}", options.id).replace("{content}", title);
            } else {
              balloon = balloon.replace("{class}", options.class).replace("{id}", options.id).replace("{content}", options.balloon).replace("{title}", title);
            }
            $("body").append(balloon);
            $("#" + options.id).fadeIn("fast");
          },
          function () {
            $("#" + options.id).remove();
            $(this).attr("title", title);
          });
          $(this).mousedown(function (e) {
            if (options.click) {
              $("#" + options.id).remove();
              $(this).attr("title", title);
            }
          }),
          $(this).mousemove(function (e) {
            var x = e.pageX + options.x;
            var y = e.pageY + options.y;
            if (options.sensible) {
              var width = $("#" + options.id).width();
              var height = $("#" + options.id).height();
              var right = $(window).width() - (x + width);
              var bottom = $(window).height() - (y + height);
              if (right < 20) {
                x = e.pageX - width - options.x;
              }
              if (bottom < 20) {
                y = e.pageY - height - options.y;
              }
            }
            $("#" + options.id).css({ top: y, left: x });
          }); // Mouse Move
        }); // Balloon
      };
    })(jQuery);
4

3 に答える 3

2

jQuery Migrateを使用して、jQuery 1.9 用に何を修正する必要があるかを確認してください。

このプラグインを使用すると、jQuery で廃止され、バージョン 1.9 で削除された API または機能を検出して復元できます。プラグインが生成するメッセージの詳細については、警告ページを参照して ください。jQuery 1.9 で行われた変更の詳細については、アップグレード ガイドブログ投稿を参照してください。

Web ページで、jQuery のスクリプトの後にこのプラグインをロードします。

<script src="http://code.jquery.com/jquery-1.9.0.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.1.1.js"></script>
于 2013-04-05T17:22:26.933 に答える
0

プラグインの作成について言及しています。http://jquery.com/upgrade-guide/1.9/を見て、jQuery 1.9 がもたらした変更を確認してください。彼らが行った重大な変更がたくさんあります。

jQuery Migrate プラグインを使用して問題を特定しますが、本番環境では使用しません。プラグインを jQuery 1.9+ で動作させる必要があります。

于 2013-04-05T17:24:36.117 に答える