2013-03-06 26 views
1

首先,讓我道歉,如果這是重複的,但我的搜索沒有讓我更開明比我目前。也就是說,我現在正在嘗試JavaScript/Ajax/jQuery,並且遇到了一些問題。onclick執行javascript函數並返回div的結果

我想在我的主頁上添加一個功能檢查,用戶可以測試他們的瀏覽器是否配置爲允許使用Cookie & Cookie(如果用戶的瀏覽器不允許, JavaScript &餅乾,因爲這個網站是爲我們公司的客戶獨家使用,我們,幾乎決定使用我們網站的條款和條件)。

現在,經過一番研究(GIYF和所有這些)之後,看起來最好的方法是讓JavaScript設置cookie,從而一石二鳥。當然,我們將無法縮小「一方或另一方」的失敗,但我試圖儘可能簡化(對我來說)。即使如此,我不確定我是否正確地採取這種方式。下面是我的.js文件中的代碼:

function error_reporting (level) { 
// http://kevin.vanzonneveld.net 
// + original by: Brett Zamir (http://brett-zamir.me) 
return this.ini_set('error_reporting', level); 

} 

var set = $(document).getUrlParam('set'); 

if(set !== 'yes') { 

    var date = new Date(); 
    var midnight = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59); 

    $.cookie('candcptest', 'ok', { 

    expire: midnight, 
    path: '/', 
    domain: 'candcp.rossdb.net', 
    secure: false 

    }, function() { 

    window.document.reload(); 

    }); 

} else { 

    var candcptest = $.cookie('candcptest'); 

    if(candcptest !== undefined) { 
    var ccptresult = 'Thank you. Your browser is configured to allow JavaScript and accept cookies. You may proceed with login'; 
    } else { 
    var ccptresult = 'Thank you. Unfortunately, your browser is not configured correctly. Please check your settings or contact the Dev Team for assistance'; 
    } 
}; 

(我以前寫的一個非常基本的測試允許PHP的cookie,然後進行修改,要在等創建這個上面可能是沒譜的方式本身)

現在,理想情況下,我想使用jQuery,因爲這看起來像一個非常適合它的任務,但顯然,我不知道如何去做這件事。這是我在我的HTML文件:現在

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <link href="styles/global.css" rel="stylesheet" type="text/css" /> 
    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
    <script type="text/javascript" src="js/jquery.cookie.js"></script> 
    <script type="text/javascript" src="js/jquery.getUrlParam.js"></script> 
    <script type="text/javascript"> 
     $(function() { 
     $('a#ccpt').click('js/candcptest',function() { 
      $('div#ccptresult').append(result); 
     }); 
     }); 
    </script> 
    </head> 

    <body class="body"> 
    <table width="1000" border="0" cellpadding="0" cellspacing="0" align="center" bgcolor="#FFFFFF"> 
     <tr> 
     <td width="1000" height="545" align="center" valign="middle"> 
      <table border="0" align="center"> 
      <tr> 
       <td width="750" height="150" align="center" class="text0down"> 
       This website makes use of JavaScript and cookies and it is essential that your browser is configured correctly in order for this website to work. If you are unsure if your browser is set up correctly, click <a href="#" class="text0down" id="ccpt">here</a> to test. 
       <div id="ccptresult"></div> 
       </td> 
      </tr> 
      </table> 
     </td> 
     </tr> 
    </table> 
    </body> 
</html> 

,這個想法(以防萬一我的JS是如此難以理解,你不能弄清楚什麼,我試圖做的)是,當用戶點擊鏈接(a#ccpt),js將執行並且結果(var結果)將顯示在div(div#ccptresult)中。

我認爲不言而喻,測試頁面完全沒有任何東西,所以有些東西是嚴重不正確的,但考慮到,直到7天前,我從來沒有寫過一行js代碼,這並不奇怪,我的知識遠不足以證明我自己出錯的地方。

任何幫助將不勝感激。

+0

在我的旅行通的jQuery,我已經嚴重依賴於從那些誰在我之前去了學習。換句話說,我已經在網上找到了腳本和教程,並且通過它們來查看我是否能夠(a)掌握他們所做的事情,並(b)讓我的代碼做他們的工作,但這種自學有它限制(和缺點,當事情不像他們應該那樣工作時,我無法弄清楚爲什麼,因爲我不能「問老師」)。同樣,當我嘗試將這些代碼片段合併到我所需要的某些東西時,我碰壁時,需要我永遠找出問題出在哪裏。 – UbuntuElphie 2013-03-06 13:29:34

+0

所以,如果你需要我發佈我使用過的其他.js文件(例如jquery.cookie.js和jquery.getUrlParam.js - 這些都是共享插件,超出了我的技能,所以我甚至沒有嘗試過去理解他們),以防萬一這些事情讓我沮喪,只是讓我知道。我沒有包括他們,因爲我認爲這篇文章已經夠長了。再次感謝 – UbuntuElphie 2013-03-06 13:30:08

+0

哪個js功能你說的是abt BTW – dakait 2013-03-06 13:33:22

回答

0

如果我理解正確的

$(function() { 
     $('a#ccpt').click(function() { 
      //execute the js function here 
      $('div#ccptresult').append(result); 
     }); 
     }); 
+0

謝謝。你絕對把我放在正確的軌道上。雖然我似乎無法讓js在外部文件中執行,但現在將它複製到內聯的位置,它現在可以完美執行,並且console.log(ccptresult)會吐出成功消息。但是,它不會將消息追加到#ccptresult div。任何想法爲什麼會發生? – UbuntuElphie 2013-03-06 15:20:20

+0

嘗試使用'.html'而不是'.append' – dakait 2013-03-06 16:15:05