2017-02-14 53 views
-1

我已經暫時接管了我的工作夥伴的一個基本網絡項目,他已經度過了蜜月。它使用Kentico平臺。我對Web開發很不熟悉;我對這個項目的大部分知識足夠了解,但我遇到了一個問題。有一個需要在依賴於網頁上的一個表上運行一個腳本:JavaScript源碼的限制範圍

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

然而,增加這個源螺絲與網頁的其餘部分,使得它無法使用。

有沒有辦法「限制範圍」的來源,以便它不會影響整個網頁?

+1

1)Java腳本文件適用於整個頁面2)表格轉換通過選擇器完成。所以我們需要知道用什麼選擇器來改變表格。該代碼是需要3)這是一個真正的舊版jQuery。你應該考慮修補它。 –

+0

爲了得到有用的建議如何解決這個問題,你需要向我們展示「網頁的其餘部分」以及它是如何被破壞的。 – Bergi

+0

Kentico使用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

我懷疑這是否是問題。 – 2017-02-14 05:06:45