2017-02-14 7 views
-1

私は一時的に新婚旅行をした仕事仲間から基本的なWebプロジェクトを引き継いだ。それはKenticoプラットフォームを使用しています。私はWeb開発にはあまり経験がありません。私はプロジェクトの大半を手に入れるのに十分だと知っていますが、私は問題を見つけました。依存しているWebページで一つのテーブル上で実行する必要のあるスクリプトがあります:JavaScriptソースの範囲を限定する

<script 
    src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"> 
</script> 

しかし、Webページの残りの部分と、このソースのネジを追加し、それが使用不能。

ソースの「範囲を制限する」方法は、ウェブページ全体に影響しないようにしていますか?

+1

1)Javaスクリプトファイルはページ全体に適用されます。2)テーブル変換はセレクタを介して行われます。したがって、テーブルを変更するためにどのセレクタが使用されているかを知る必要があります。そのコードは必要です3)これはjqueryの本当に古いバージョンです。それにパッチを当てることを検討する必要があります。 –

+0

この問題を解決するためのアドバイスを得るには、「残りのウェブページ」とそれがどのように壊れているかを示す必要があります。 – Bergi

+0

KenticoはWebページでjQuery 1.8.3を使用しています。あなたは、さらに古いバージョン1.6.4を追加して追加したいですか?その行を削除してjQuery 1.6.4をロードするとどうなりますか? JSエラー?その場合、Kenticoがjqueryのバージョンをロードする前にスクリプトが実行されるか、またはスクリプトが廃止予定の関数を使用してすぐに更新する必要があります。あなたに視点を与えるために、現在の安定版のjQueryは3.1.1です。 [バージョン1.6.4は2011年9月にリリースされました](https://github.com/jquery/jquery/releases/tag/1.6.4) – Thomas

答えて

0

jQueryの特定の機能を持っている、$.noConflict()使用することができます。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script> 
<script> 
    altjquery = $.noConflict(true); 
</script> 

今、新しくロードされたjQueryがデフォルト$jQueryから引き出されました(今の代わりaltjqueryからアクセス)と元の値が回復しました。

あなたがあなた自身のコード内のjQueryのバージョンを使用したい場合は、のようなものでこれをフォローアップがあります

(function($){ 
    // Your code here 
})(altjquery); 

これは、そのセクション内のあなたのjQueryのための典型的な$を使用することができますでしょう。

あなたは再び考えてみたいかもしれません。あなたのページにはすでにjQueryがロードされています(このため、この問題が発生しています)。さらに悪いことに、古いバージョンを読み込もうとしています。あなたは、ページのjQueryを使うか、新しいバージョンを読み込む方が良いでしょう。

+0

ヒープありがとう!私たちは、jQueryのこの正確なバージョンが必要であることを「明らかに」必要とする、かなり古いスクリプトを実行する必要がありました。しかし、私は、ページがすでに実行されているバージョンでスクリプトを実行しようとしましたが、すべて正常に動作しているようです。 noConflict()についての頭のおかげで、将来の使用のために間違いなくそれを覚えています! –

-1

私はあなたが持っている問題は、スコープよりもjQueryセレクタに関するものだと思います。既存のコードの$()呼び出しを対象のテーブルに絞り込む必要があります。

たとえば、あなたは正確にこれを行うこと、$('#myTable')代わりの$('table')

+0

これが問題であるかどうかは疑問です。 –