2015-11-11 56 views
1

我試圖在AJAX JSONP請求的結果處理程序中使用HTML5設置sessionStorage。爲了解釋這一點,可以說我的AJAX是這樣的:在JSONP結果中設置sessionStorage?

$(document).ready(function(){ 
    var output = $('.dotted-list'); 

    $.ajax({ 
     url: 'page.php?sub='+categories+'', 
     dataType: 'jsonp', 
     jsonp: 'jsoncallback', 
     timeout: 5000, 
     success: function(data, status){ 
      $.each(data, function(i,item){ 
       var landmark = '<a href="products.html" data-transition="slidefade" onClick="sessionStorage.someKey = 'Something';">' 
       + '<div class="sub-baners">' 
       + '<img src='+item.aw_image_url+' >' 
       + '</div>' 
       + '</a>'; 
       output.append(landmark); 
      }); 
     }, 
     error: function(){ 
      output.text('There was an error loading the data.'); 
     } 
    }); 

正如你可以看到我嘗試使用在線onClick=""設置sessionStorage但我知道我在做什麼是錯的,因爲當我檢查的元素瀏覽器而不是像這樣:

onClick="sessionStorage.someKey='Something';" 

我得到了一個非常奇怪的輸出是搞砸了!這樣的事情:

Something;' onClick="sessionStorage.someKey = " 

有人可以請建議在這個問題上?

回答

2

這是一個錯誤的代碼,但你可以解決這個問題:

onClick="sessionStorage.someKey = \'Something\';" 

看看逃脫單引號。

但是,如果您刪除了html中的onclick,並且在JavaScript文件中編寫了一個偵聽器,並允許您使用正確的語法進行更好的控制,則效果會更好。