2013-03-07 66 views
2

我對JavaScript很新穎,但我盡我所能,無法找到答案或幫助我的東西。如何跨越多個js文件使用功能

我想把千位之間的空格,但在不同的JS文件。所以我想在其他文件中定義該函數,以便我可以重用它。這工作:

var parts = item['effect-value'].toString().split("."); 
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, " "); 
parts.join("."); 

我已經試過如下:

全局文件:

function addSeparator(){ 
     parts.toString().split("."); 
     parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, " "); 
     parts.join("."); 
    } 

或這樣的事情...

$.fn.addSeparator = function(options) { 
    var $this = this; 

    var parts = options.replace; 

    $this.html({ 
     parts.toString().split("."); 
     parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, " "); 
     parts.join("."); 
    }) 

    return $this; 
}; 

其他文件:

var parts = item['effect-value']; 
addSeparator(parts); 

預先感謝您。

+0

那麼,這是什麼問題? – 2013-03-07 16:38:48

+0

那麼問題是什麼? – gdoron 2013-03-07 16:39:10

+0

只要這個函數在全局範圍內(即你可以在調用它的頁面上包含帶'.js'函數的文件),你可以簡單地調用函數,例如'var parts = addSeparator( item ['effect-value']);' – War10ck 2013-03-07 16:42:38

回答

1

你只是運行該函數,而不是依賴於var。

嘗試使用這樣的:

 function addSeparator(input){ 
      var parts = input.toString().split("."); 
      parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, " "); 
      return parts.join("."); 
     } 
    var parts = addSeparator(item['effect-value']); 
+0

這似乎並不奏效。控制檯說:「未捕獲的TypeError:不能調用未定義的方法'toString'和」Uncaught TypeError:無法調用方法'替換'未定義的「,但感謝您的回覆! – Miet 2013-03-07 16:58:51

+0

item [「效果值」]的價值是什麼? – 2013-03-07 18:31:35

+0

這是json數據(純數字)?這是否回答你的問題? – Miet 2013-03-07 21:32:35

0

只要功能是在全球範圍內和已經加載,他們應該工作。

您的HTML中JavaScript文件調用的順序是什麼?依賴於其他文件的文件應該在它們所依賴的文件之後。

IE - 全局,分隔符,使用分隔符的JS

+0

謝謝你的評論Shauna。似乎我忘了將函數保存到變量中。 – Miet 2013-03-08 07:51:56