iT邦幫忙

0

jquery 在 function 中無法使用 $.cookie ?

很好奇一個剛剛遇到的問題...

主動

navigator.geolocation.getCurrentPosition(
    handlePosition, 
    handleError
)

function handlePosition(position) {
    $.cookie('abc', true)
}

function handleError(error) {
}

如果是這樣子寫的時候,$.cookie('abc', true) 可以順利執行
但假設是這樣

被動

function getGeoLocation() {
    navigator.geolocation.getCurrentPosition(
        handlePosition, 
        handleError
    )
}

function handlePosition(position) {
    $.cookie('abc', true)
}

function handleError(error) {
}

透過按鈕觸發

<button onclick="getGeoLocation()">abc</button>

此時就會出現$.cookie is not a function的錯誤
這是為什麼?
我的想像是
當確定獲取到位置時,存入cookie方便使用
但遇到了這個問題@@這是怎麼了嗎...
懇請大大解析

2 個回答

2
通靈亡
iT邦研究生 3 級 ‧ 2020-12-04 22:29:48

你真的確定問題是JQuery???????
https://codepen.io/ted59438/pen/bGwEQPP
/images/emoticon/emoticon36.gif

asys0512 iT邦研究生 2 級 ‧ 2020-12-07 17:16:59 檢舉

請問開這個網頁你的是正常的?
https://jsfiddle.net/wbcq3ho4/

asys0512 iT邦研究生 2 級 ‧ 2020-12-07 17:19:50 檢舉

然後我把你的code改成

function handlePosition(position) {
    $.cookie('abc', true)
  console.log($.cookie('abc'))
}

https://imgur.com/EPTNgX4
我得到的是undefined
我使用谷歌瀏覽器,cookie都允許
然後我沒有說是jquery的問題,我只是闡述了我遇到的問題

通靈亡 iT邦研究生 3 級 ‧ 2020-12-08 09:09:37 檢舉

上次已經提醒過你,要修正問問題的方式。

你覺得你沒有說是JQuery的問題,但是你的敘述,就是在預設問題是JQuery在function無法使用,還浪費時間等別人問你才提供完整程式碼,等別人問才說你是用Chrome測試。

要請別人幫你找錯誤,就不要只提供片面的程式碼和口述的錯誤訊息

當你改用更好的提問:「Chrome無法存取JQuery的Cookie plugin與原生的Cookie」,清楚的描述問題,問題往往就解決了。

Chrome不允許存取本地file的Cookie,請你自己在本機開個HTTP Server,把網頁放上去,使用Chrome輸入IP連到網頁測試,就會抓的到。

https://stackoverflow.com/questions/8602833/where-are-cookies-saved-for-a-local-html-file

0
讓我靜靜...
iT邦新手 5 級 ‧ 2020-12-07 14:05:01

少掛了一隻jquery.cookie了吧
參考:https://github.com/carhartl/jquery-cookie

我要發表回答

立即登入回答