是否可以覆蓋縮小的Javascript文件中包含的函數?是否有可能覆蓋縮小的JavaScript函數
Details: 我試圖重寫Twitter Boootstrap Typeahead插件(v2.3.2)中的process()函數,以便在下拉菜單的底部添加一個指標,如果返回的項目超過顯示的項目。
這裏是我的代碼:
var customProcess = function (items) {
var that = this
items = $.grep(items, function (item) {
return that.matcher(item)
})
items = this.sorter(items)
if (!items.length) {
return this.shown ? this.hide() : this
}
//Get the default item slice and determine whether the indicator is needed
var itemSlice = items.slice(0, this.options.items);
if (items.length > this.options.items) {
itemSlice.push("...");
}
return this.render(itemSlice).show();
};
// Reassign the typeahead.process() function to the customized
// version that adds a visual indicator if more items are
// returned than the amount shown (options.items).
$.fn.typeahead.Constructor.prototype.process = customProcess;
如果我使用的是JavaScript的自舉(bootstrap.min.js)的縮小的版本失敗,實際上完全殺死了預輸入功能。如果我改用非縮小版本(bootstrap.js),它可以很好地工作。 [作爲一個方面說明,我之前對typeahead插件的舊版本(v1.8.x我相信)使用了相同的方法,並且它與最小化版本完美配合。我剛運氣好嗎?]
嘗試使用縮小像http://jscompress.com/縮小非縮小版本(適用於您),並檢查是否有效。 –
@ParthikGosar [jscompress.com](http://www.jscompress.com)無法正常工作,但我在[refresh-sf.com/yui](http://refresh-sf.com/yui/)找到了另一個)。使用新縮小文件,覆蓋成功。至於我最初的問題,只要縮小的JS是正確的,似乎壓倒性的縮小JS是完全有效的。我對嗎?謝謝你的幫助! – catalyst156
是的,你是正確的...在縮小JS文件時常見的錯誤之一是我們錯過了在我們的代碼中添加分號的時候。所以當文件被縮小時,連續的行被計算爲同一行(因爲這些行之間沒有分號)。必要時一些縮小器會添加分號,有些則不會。這種情況會在縮小的文件中引入錯誤。 –