2013-03-22 30 views
2

在頁面加載時,我的getJSON調用將其輸出顯示爲div(稱爲myDiv)。如何在每次點擊加載項按鈕時將getJSON的結果附加到div上?

現在我想在頁面的末尾添加一個按鈕,當用戶單擊該按鈕時,我想再次調用getJSON,但是這次我想將page_number增加1,每次用戶點擊按鈕並在前面的結果末尾顯示新的結果。你們可以告訴我我該如何做到這一點?

<head> 
    <script> 
    //var counter = 1; 
    $.getJSON('http://anyorigin.com/get?url=https://www.myothersite.com/getit.php?page_number=+counter&type=TopVideos&sortBy=newest&callback=?', function(data){ 
     var siteContents = data.contents; 
     //writes to textarea 
     document.myform.outputtext.value = siteContents; 
     document.getElementById("myDiv").innerHTML=siteContents; 
     $('#loadingimg').hide(); 
    }); 
    </script> 
</head> 
<body> 
    <div class="MainDiv"> 
    <div class="MainContent"> 
     <div class="ContentWidth"> 
     <div id="JSListVideo" class="VideoList"> 
      <div id="myDiv"></div> 

而且按鈕的代碼:

<div class="MoreButtonSection"> 
    <div class="RedButton"> 
    <span class="LeftEnd"></span> 
    <span class="Centre"> 
     <a href="javascript:void(0);" onclick="seemore();" title="See more">see more</a> 
    </span> 
    <span class="RightEnd"></span> 
    </div> 
</div> 

回答

2

回答我勸你最好堅持使用一種方法,無論是jQuery的語法或Javascript之前。我想你想要分頁代碼。下面的代碼可能對你有一些用處。

我想給你一些關於如何完成的想法。如果我錯了,請糾正我。

//initialize page number to 1 default 
var pagenumber=1; 
$(document).ready(function(){ 
    //load first page records on page load 
    getResult(pagenumber); 
}); 

//pass pagenumber to function to fetch correct page records 
function getResult(pagenumber){ 
    $.getJSON('http://anyorigin.com/get?url=https://www.myothersite.com/getit.php?page_number='+ pagenumber +'+counter&type=TopVideos&sortBy=newest&callback=?', function(data){}); 
    //after every call increment page number value 
    pagenumber++; 
} 
$('btnLoadMore').click(function(){ 
    //simply call getResult 
    getResult(pagenumber); 
}); 

我找不到seemore()函數在您的代碼中。也許你想要這樣的東西。你的HTML必須是:

<a href="#" onclick="return seemore();" title="See more">see more</a> 

JS必須是:

function seemore(){ 
    counter++; 
    return false; 
} 

counter必須是全局變量,以便它可以訪問。沒有你的URL的想法:

http://anyorigin.com/get?url=https://www.myothersite.com/getit.php?page_number=+counter&type=TopVideos&sortBy=newest&callback=? 

我覺得應該是:

http://anyorigin.com/get?url=https://www.myothersite.com/getit.php?page_number='+ counter +'&type=TopVideos&sortBy=newest&callback=? 
+0

可以請你在喲中添加一些註釋你的代碼?將會有所幫助。 – Sangeeta 2013-03-22 03:58:10

+0

請參閱修改。 – Sangeeta 2013-03-22 04:12:02

+0

我不能讓我的按鈕與您的點擊事件一起工作!我應該把你的第一個代碼放在另一個函數裏面,然後調用它呢? – user1788736 2013-03-22 04:24:52

1

你可以只增加價值的當前值。看看波紋管:

document.getElementById("myDiv").innerHTML += siteContents; 
+0

感謝脫穎而出。但怎麼每次遞增頁碼回覆我點擊按鈕來調用的getJSON(默認頁碼我想要它成爲一個,因爲這是第一次加載頁面時執行的值? – user1788736 2013-03-22 03:21:59

2

首先在$(document).ready();內包裝代碼。

現在,你需要創建一個click事件的按鈕,以便在單擊按鈕時,它會調用getJson,然後可以將數據添加到所需的DIV,因爲現在你的代碼將只是在加載時運行

$(document).ready(function() { 
    var counter = 1; 
    $('button').on('click',function() { 
    $.getJSON('http://anyorigin.com/get?url=https://www.myothersite.com/getit.php?page_number=+counter&type=TopVideos&sortBy=newest&callback=?', function(data) { 
     var siteContents = data.contents; 
     document.myform.outputtext.value = siteContents; 
     $("myDiv").html(siteContents); 
     $('#loadingimg').hide(); 
    }); 
    counter++; 
    }); 
}); 
+0

感謝您能告訴我如何修改我的按鈕,以便您的點擊事件正確使用它嗎? – user1788736 2013-03-22 03:55:42

+0

@ user1788736您需要爲您添加唯一ID按鈕,然後用$('#buttonID')替換'$('按鈕')'。 – 2013-03-22 03:57:29

相關問題