1

WordPress ブログでこのコードを使用したいのですが、うまくいきません。

  (function ($) {
    $.fn.extend({
      raw: function (options) {
        this.defaultOptions = {
          className: 'raw-link',
          eventBased: true
        };
        var settings = $.extend({}, this.defaultOptions, options);
        return this.each(function () {
          var $this = $(this),
            data = 'data:;base64,' + unescape(btoa($this.text()));
          if (settings.eventBased) {
            $link = $('<a href="#" class="' + settings.className + '">Raw</a>');
            $this.after($link);
            $link.on('click', function (e) {
              e.preventDefault();
              window.open(data);
            });
          } else {
            $this.after('<a href="' + data + '" target="_blank" class="' +
                          settings.className + '">Raw</a>');
          }
        });
      }
    });
  })(jQuery);
  jQuery(document).ready(function () {
    $('pre').raw();
  });

それが行うことは、pre選択した要素の後にリンクを追加することです。クリックすると、そのような pre の生のコードが新しいウィンドウで開きます。

ファイル内の既存の JavaScript ファイルにコードを追加しheader.php、新しい JS ファイルを作成して試しましたが、それでも機能しませんでした。

コードは正しいです。jsFiddle でテストしました。WordPressで動作していないだけです。

誰でもこれで私を助けてもらえますか?

4

1 に答える 1

1

Wordpressは通常noConflictモードでjQueryをロードしますが$ 、この場合、shortHandを介してjQueryにアクセスすることはできません。

これを変える:

jQuery(document).ready(function () {
    $('pre').raw();
  });

jQuery(document).ready(function () {
    jQuery('pre').raw();
  });

また

jQuery(document).ready(function ($) {
    $('pre').raw();
  });
于 2012-12-31T08:30:04.663 に答える