1

したがって、この同じタイトルの他の質問を見たことがありますが、同じ問題に遭遇しているとは思いません (特に、私は Drupal を使用しておらず、以下に示すようにファイルがページ ヘッダーに読み込まれているようです)。 )。その関数が見つからないことは理解していますが、その理由はわかりません。これは、javascript とスタイルをセットアップする theme.liquid ヘッド内のコードです。

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <link rel="canonical" href="{{ canonical_url }}" />

  {% assign maxmeta = 155 %}
  {% if template contains 'product' %}
  <meta name="description" content="{{ product.description | strip_html | strip_newlines | truncate: maxmeta | escape }}" />
  {% elsif template contains 'page' %}
  <meta name="description" content="{{ page.content | strip_html | strip_newlines | truncate: maxmeta | escape }}" />
  {% elsif template == 'index' and shop.description != '' %}
  <meta name="description" content="{{ shop.description }}" />
  {% endif %}


  {{ 'skinCustom.css' | asset_url | stylesheet_tag }}
  {{ 'jquery-1.4.2.min.js' | asset_url | script_tag }}
  {{ 'jquery.jcarousel.min.js' | asset_url | script_tag }}

  {% if template == 'index' %}
   <title>{{ shop.name }}</title>
  {% elsif template == '404' %}
    <title>Page Not Found | {{ shop.name }}</title>
  {% else %}
   <title>{{ page_title }} | {{ shop.name }}</title>
  {% endif %}

  {% include 'fb-open-graph' %}

  {% case settings.header_font %}
  {% when "Rancho, cursive" %}
    <link href='http://fonts.googleapis.com/css?family=Rancho' rel='stylesheet' type='text/css'>
  {% when "'Amatic SC', cursive" %}
    <link href='http://fonts.googleapis.com/css?family=Amatic+SC:700' rel='stylesheet' type='text/css'>
  {% when "'Sancreek', cursive" %}
    <link href='http://fonts.googleapis.com/css?family=Sancreek' rel='stylesheet' type='text/css'>
  {% when "'Ubuntu Condensed', sans-serif" %}
    <link href='http://fonts.googleapis.com/css?family=Ubuntu+Condensed' rel='stylesheet' type='text/css'>
  {% endcase %}

  {{ 'style.css' | asset_url | stylesheet_tag }}{% if template contains 'product' and settings.main_image_display == 'Lightbox' %}
  {{ 'jquery.fancybox-1.3.4.css' | asset_url | stylesheet_tag }}{% endif %}
  {{ 'modernizr.js' | asset_url | script_tag }}
  {{ 'option_selection.js' | shopify_asset_url | script_tag }}

  {% if template contains 'customers' %}
    {{ "shopify_common.js" | shopify_asset_url | script_tag }}
    {{ "customer_area.js"  | shopify_asset_url | script_tag }}
  {% endif %}

    <script type="text/javascript">

    $(document).ready(function() {
        $('#mycarousel').jcarousel({ vertical: true, scroll: 1, start: 3 });
    });

    </script>

  {{ '//ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js' | script_tag }}

  {{ content_for_header }}

ページがレンダリングされると、次のようになります (この質問に関係のない余分なものを編集しました)。jcarousel が依存する js とスタイリング ページの参照を指す矢印を配置します。Shopifyプロジェクトに移動する前に、別のファイルでこれが機能する例がありました.

<head>
  <meta charset="UTF-8">

  --> <link href="http://cdn.shopify.com/s/files/1/0212/5406/t/1/assets/skinCustom.css?241" rel="stylesheet" type="text/css"  media="all"  />
  --> <script src="http://cdn.shopify.com/s/files/1/0212/5406/t/1/assets/jquery-1.4.2.min.js?241" type="text/javascript"></script>
  --> <script src="http://cdn.shopify.com/s/files/1/0212/5406/t/1/assets/jquery.jcarousel.min.js?241" type="text/javascript"></script>


  <link href="http://cdn.shopify.com/s/files/1/0212/5406/t/1/assets/style.css?241" rel="stylesheet" type="text/css"  media="all"  />
  <script src="http://cdn.shopify.com/s/files/1/0212/5406/t/1/assets/modernizr.js?241" type="text/javascript"></script>
  <script src="http://cdn.shopify.com/s/shopify/option_selection.js?aaf2a68ed9671e345bbc7eef1e63563c51bde6eb" type="text/javascript"></script>



    <script type="text/javascript">

    $(document).ready(function() {
   ERROR HERE -->    $('#mycarousel').jcarousel({ vertical: true, scroll: 1, start: 3 });
    });

    </script>

  <script src="//ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js" type="text/javascript"></script>


<link rel="stylesheet" href="/global/theme-controls.css" type="text/css" />


</head>

私が想像できる唯一のことは、他のスクリプト ファイルの 1 つがこれをめちゃくちゃにしているということです。しかし、他のスクリプト ファイルを取り出す以外に、それをどのようにデバッグするかはよくわかりません。誰かが同様の問題に遭遇したか、これについて何らかの洞察を持っているなら、私はそれを大いに感謝します. 他の質問はどれも、単に間違った実装 (そのスクリプトを頭から除外するなど) 以外の答えを得るようには見えませんでした。私はばかげたことをしているかもしれませんが、これを何度も調べて調べましたが、それが何であるかわかりません。

ありがとう、

アラン

4

2 に答える 2

1

上記のコメントを応答フォームに入れています。

これには2つの問題があります。まず、jQuery を 2 回ロードしています。そうしないでください。次に、jQuery で を使用$すると、他の JavaScript ライブラリと競合する可能性があるため、jQueryjQuery の非競合モードを使用するか、使用する必要があります。

于 2013-02-13T03:30:00.040 に答える
0

@ gaoshan88がコメントしたように、私はjqueryを2回ロードしていました。最初にjcarousel.jsスクリプトだけを追加したとき、jqueryファイルがないと言っていたからです。そこで、shopifyがgoogle.apisを介して最新バージョンも追加することを知らずに、自分で再度追加しました。そもそもjqueryでそのエラーが発生した理由はよくわかりませんが、google.apisスクリプトの参照を取得すると機能しました。迅速な対応ありがとうございました。

于 2013-02-13T02:05:55.297 に答える