2011-10-06 5 views
0

これが最善の方法であるかどうかはわかりませんが、下記のように私は現在のページを取得してそれを "load_more"のdivに追加しています。次に、この値を関数に+1します。この「合計ページ」に追加され、どこに追加するかわからない(別のdiv)。私はそれをdivに追加することができますか(クリックで同じもの)し、結果をスリット?より多くのクリック機能でロード?divに2の値を加えて分割しますか?

おかげ

$('.load_more').live("click", function(){ //When user clicks 

      var currentPage = parseInt($(this).attr('id'), 10); 
      ++currentPage; 

      alert(currentPage); 

      dosomething(currentPage); 
     }); 

var currentPage = ""; 
var totalPages = ";" 

$.each(r.MESSAGES, function(key, value){ 

    currentPage += value.CURRENTPAGE; 
    totalPages += value.TOTALPAGES;       

}) 
jQuery('.load_more').attr("id", currentPage); 

HTML

<div id="load-more"> 
    <a class="load_more" id="123" href="#"> 
     Load More 
    </a> 
</div> 

答えて

1

代わりのDOMを追加し、あなたのクラスに属性値を設定した値を取得しますは、jQueryデータストレージを使用したアイデアです。 http://api.jquery.com/data/

使用することは非常にシンプル:http://jsfiddle.net/j3bb5/

$('.load_more').data("current_page", 1); // Setting variable current_page; 
alert($('.load_more').data("current_page")); // Getting variable current_page, alerts "1" 

そして、あなたは同様にオブジェクトを格納することができますhttp://jsfiddle.net/j3bb5/1/

$('.load_more').data("current_page", { // Setting variable current_page; 
    id: 1, 
    name: "My page 1" 
}); // Setting variable current_page; 
alert($('.load_more').data("current_page").id); // Getting variable current_page, alerts "1" 
alert($('.load_more').data("current_page").name); // Getting variable current_page, alerts "My page 1" 

そして今、あなたの例には:http://jsfiddle.net/j3bb5/4/

は何を知ってはいけません変数rはこのようなものですか?

​​

機能doSomethingは何もしません。)jQuery.fn.data方法

ファーストを使用してr.MESSAGESから値を設定する

function doSomething(CURRENTPAGE, TOTALPAGES) {}; 

は我々が一時的CURRENTPAGETOTALPAGES変数

var CURRENTPAGE = 0, TOTALPAGES = 0; 
を定義します

ループはr.MESSAGESを投げるとCURRENTPAGETOTALPAGES

$.each(r.MESSAGES, function(key, value) { 
    CURRENTPAGE += value.CURRENTPAGE; 
    TOTALPAGES += value.TOTALPAGES; 
}); 

を更新する.load_more

data方法から CURRENTPAGETOTALPAGESを取得
$('.load_more').live("click", function() { 

上のセレクタ.load_more

$('.load_more').data("CURRENTPAGE", CURRENTPAGE); 
$('.load_more').data("TOTALPAGES", TOTALPAGES); 

Clickイベントにそれらをバインド:

var CURRENTPAGE = $(this).data("CURRENTPAGE"); 
    var TOTALPAGES = $(this).data("TOTALPAGES"); 

値をアラート:私たちの変数の前に二重の+記号に注意してください。

alert("CURRENTPAGE: " + CURRENTPAGE); 
    alert("TOTALPAGES: " + TOTALPAGES); 

そして今は1で値が増加します。これは値に1を加えることを意味します。少し詳しい説明:http://jsfiddle.net/j3bb5/6/

$(this).data("CURRENTPAGE", ++CURRENTPAGE); 
    $(this).data("TOTALPAGES", ++TOTALPAGES); 

    doSomething(CURRENTPAGE, TOTALPAGES); 
}); 
+0

これは素晴らしいです!本当に助けてくれてありがとう! jQueryのデータストレージを使用することについては知りませんでした。 – Niklas

関連する問題