为div添加2值然后拆分?

时间:2011-10-06 13:24:13

标签: html jquery

不确定这是否是最好的方法,但是,如下所示我得到当前页面并将其添加到“load_more”的div中然后我在函数中使用此值为+ 1.但是我现在需要另一个增值到这个“总页数”,我不知道在哪里添加它(另一个div)。我可以将它添加到div(点击相同的那个),然后切出结果吗?在加载更多点击功能?

由于

获取值

  $('.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 个答案:

答案 0 :(得分:1)

不是将DOM属性添加到类load_more,而是使用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是什么类似的东西?

var r = {
    MESSAGES: [{
        CURRENTPAGE: 1,
        TOTALPAGES: 4
    },{
        CURRENTPAGE: 2,
        TOTALPAGES: 4
    }]
};

函数doSomething什么都不做;)

function doSomething(CURRENTPAGE, TOTALPAGES) {};

使用r.MESSAGES方法

jQuery.fn.data设置值

首先我们定义临时CURRENTPAGETOTALPAGES变量

var CURRENTPAGE = 0, TOTALPAGES = 0;

循环投掷r.MESSAGES并更新CURRENTPAGETOTALPAGES

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

将它们绑定到选择器.load_more

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

点击.load_more上的活动

$('.load_more').live("click", function() {

CURRENTPAGE方法获取TOTALPAGESdata

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

警告值:

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

现在将值增加一个:注意变量之前的双+符号。这意味着您在值中添加一个。更深入的解释:http://jsfiddle.net/j3bb5/6/

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

    doSomething(CURRENTPAGE, TOTALPAGES);
});