2013-06-18 29 views
0

我嘗試在JavaScript文件中調用方法時出現了一個奇怪的問題。這個js文件有以下兩種方法:javascript函數只能以不同的名稱調用

function setCookie(c_name, value, exdays) 
{ 
    //set the expiry date as now + the specified number of days 
    var exdate=new Date(); 
    exdate.setDate(exdate.getDate() + exdays); 

    //add the expiry date string to the cookie value 
    var c_value = escape(value) + ((exdays==null) ? "" : "; 
    expires="+exdate.toUTCString()+"; path=/"); 

    //set the cookie 
    document.cookie = c_name + "=" + c_value; 
} 

function setTheCookie(c_name, value, exdays) 
{ 
    //set the expiry date as now + the specified number of days 
    var exdate=new Date(); 
    exdate.setDate(exdate.getDate() + exdays); 

    //add the expiry date string to the cookie value 
    var c_value = escape(value) + ((exdays==null) ? "" : "; 
    expires="+exdate.toUTCString()+"; path=/"); 

    //set the cookie 
    document.cookie = c_name + "=" + c_value; 
} 

點擊一個按鈕,當我使用它onclick="setTheCookie('cookie_bar_hide', 'yes', 365)"被調用,但是當我使用它onclick="setCookie('cookie_bar_hide', 'yes', 365)"不會被調用。

任何想法,爲什麼會發生這種情況?

+0

'console.log(setCookie.toString());'在控制檯中返回什麼? – epascarello

+0

你有這個'onclick'的整個元素的確切代碼是什麼? – Teemu

+0

您正在測試哪個瀏覽器? –

回答

3

還有別的東西設置setCookie方法

從控制檯

> setCookie 
function setCookie(name, value) 
{ 
    document.cookie = escape($.trim(name)) + '=' + escape(value) + ';path=/'; 
} 

通過所有的JavaScript文件的展望,setCookie位於您base.jscookie.js

+0

感謝您確認問題,如果同名的函數存在於兩個.js文件中,優先順序,並且它不取決於我們傳遞的參數的數量? – rumi

+2

不,JavaScript中沒有重載,第二個重載覆蓋了前一個。 – epascarello

-4

我相信這可能與您如何在onClick事件中調用您的函數有關。請撥打以下多種方法:

onClick="doSomething();doSomethingElse();" 

不適用於多個OnClick。

讓我知道這是否解決了這個問題。

相關問題