JqueryMobile - 如何在一个html页面上运行一个函数?

时间:2012-03-26 20:37:43

标签: jquery jquery-mobile

我正在使用jqm构建一个新的应用程序。 所有的javascript都放在index.html中,在另一个页面上(cat.html)我使用无限滚动来显示类别中的帖子,当你滚动时,15个帖子之后它会加载15个以上的15个.... 访问cat.html页面并执行该功能后,所有其他页面上都会继续运行(仅在您访问cat.html之后)。

这是执行代码:

如何告诉其他页面不使用此代码?

$('#SaloonaMobileCatPage').live('pageshow', function(event) 
{

$(window).bind('scrollstop', function(){

if ($(this).scrollTop() + $(this).height() >= ($(document).height() - 100)){

$.mobile.showPageLoadingMsg();
var id = getUrlVars()["catid"];
sf = sf + 15;


$.ajax({
type: "GET",
cache: false,
url: "http://saloona.co.il/mobile/mobile_xml/read_cats_xml.php?cat_id=" + id +       "&start_from=" + sf,
dataType: "xml",
success: parseXmlCatsMore
});

}
});    

1 个答案:

答案 0 :(得分:2)

pageshow事件触发cat页面时,您可以绑定scrollstop事件处理程序,当pagehide事件触发cat页面时,您可以取消绑定scrollstop事件处理程序:

$(document).delegate('#SaloonaMobileCatPage', 'pageshow', function(event) {

    $(window).bind('scrollstop.cat-page', function(){

        if ($(this).scrollTop() + $(this).height() >= ($(document).height() - 100)){

            $.mobile.showPageLoadingMsg();
            var id = getUrlVars()["catid"];
            sf = sf + 15;

            $.ajax({
                type     : "GET",
                cache    : false,
                url      : "http://saloona.co.il/mobile/mobile_xml/read_cats_xml.php?cat_id=" + id + "&start_from=" + sf,
                dataType : "xml",
                success  : parseXmlCatsMore
            });
        }
    });
}).delegate('#SaloonaMobileCatPage', 'pagehide', function () {
    $(window).unbind('scrollstop.cat-page');
});

注意我是如何在事件类型中添加命名空间的,这样我就可以添加/删除我想删除的事件处理程序。

另一种方法是向if/then事件处理程序添加scrollstop语句,以检查当前页面是否为cat页面:

$(document).delegate('#SaloonaMobileCatPage', 'pageshow', function(event) {

    $(window).bind('scrollstop.cat-page', function(){

        if ($.mobile.activePage[0].id == 'SaloonaMobileCatPage' && $(this).scrollTop() + $(this).height() >= ($(document).height() - 100)){

            $.mobile.showPageLoadingMsg();
            var id = getUrlVars()["catid"];
            sf = sf + 15;

            $.ajax({
                type     : "GET",
                cache    : false,
                url      : "http://saloona.co.il/mobile/mobile_xml/read_cats_xml.php?cat_id=" + id + "&start_from=" + sf,
                dataType : "xml",
                success  : parseXmlCatsMore
            });
        }
    });
});

注意我如何使用$.mobile.activePage[0].id获取当前页面的ID,并根据cat页面的ID进行检查,以便if/then语句中的代码仅在以下情况下运行:用户在cat页面上。