2017-03-07 20 views
0

私のウェブサイトにjQuery Seat Chart Pluginを使用しています。JavascriptとjQueryがシートチャートプラグインで競合する

それはJavaScriptを使用していますので、それは昔のウェブサイトだが、このプラグインはjQueryのであるので、私は次のjQueryコード

function recalculateTotal(sc) { 
    var total = 0; 

    //basically find every selected seat and sum its price 
    sc.find('selected').each(function() { 
     total += this.data().price; 
    }); 

    return total; 
} 

上のエラーを取得しています私が手にコンソールでエラーが私が競合エラーを推測していますUncaught TypeError: this.data is not a functionですJavaScriptとjQueryで

私は次のコード

sc.find('selected').each(function() { 
     total += jQuery(this).data().price; 
    }); 

を使用する場合それは「プロトタイプのJavaScriptでエラーUncaught TypeError: this._each is not a functionを以下のスロー。

新しい拡張機能を作成しようとしましたが、javascriptのバージョンを変更しようとしましたが、エラーを解決できません。

+0

JavaScriptとJavaScriptの競合を使用するフレームワークとして、JavaScriptはどのように使用できますか?いいえ、あなたの問題は他の場所にあります。おそらく、あなたの「this」への参照は、それがあなたが期待しているものではないでしょう。 – urbz

+0

Jquery Seat Chart Pluginをロードする前に、jQueryライブラリをサイトにリンクしましたか? – Zorken17

+0

あなたはそこにいます。 'これは私が期待しているものを参照していない。私は関数に 'sc'のプラグイン参照を渡していますので、' this'を介してすべてのプラグインメソッドを参照する必要がありますが、そうではありません。私はそこで何をすべきですか? –

答えて

3

jQueryはJavascriptライブラリであり、別の言語ではないため、競合はありません。私はあなたがsc.find('selected')とjQueryの.each()を使用している参照

ので、問題が存在する必要があります:

  1. find('selected')は、私が何をしたいです疑うselected htmlタグを持つ要素を選択します。そのクラスの要素を選択する場合は、.selectedを使用する必要があります。 1つの要素が上記idである場合は#selectedです。 .find()
  2. 必ずあなたのsc要素に.seatCharts({})を使用し、あなたはjQueryの選択要素selectedから.data()を取得する取得しようとしているあなたはseatChartsdata()が作る取得しようとしている場合は、このthis.data("price") のようにそれを行う必要がある場合についての詳細またはdata()の機能がありません
+0

デモの例と同じものを使用しています。私はちょうど私のプロジェクトで同じものを適用しました。しかし、私はすべての可能性を検討しています。 –

+0

は、プラグインのように、独自の '.find()'と '.data()'を定義しています。私はあなたがあなたのステップを一つずつトレースすることをお勧めします。最初に 'each.'を使う前に' console.log(sc.find( 'selected')) 'を試してみてください。それが何かの座席/要素を返すかどうか確認してください。問題は –

+0

です。私のPCは正常に動作しますが、プロジェクトで問題が発生します。だから私はいくつかの 'javascript'競合やバージョンの問題をどこかに推測しています。 –