有没有办法在jQuery中永久定义一个函数?

时间:2012-01-28 01:11:44

标签: php jquery function

我正在开发一个将信息传递给我的服务器并返回页面的网站,但每次重新加载页面时我都必须重新定义点击监听器,因为jQuery控制着我在每个页面上的所有点击,所以我'我想知道有没有办法永久定义一个函数?

jQuery代码:

$(function(){
    $('.lvl1Links').on('click',function(event) {
        event.preventDefault();
        $('pload').html('<img src="source/image/lbl.gif">');
        var page = $(this).attr('id');
        var huh = $('input:hidden').val();
        var data = 'pop='+huh+'&page='+page;
        $.post('source/php/bots/authorize.php',data,function(data){
                $('#pager_master_div').html(data).slideDown();
                $('pload').html('');
            });
    });
});

2 个答案:

答案 0 :(得分:1)

作为无状态平台,每次加载页面时都需要重新绑定此类内容。这是我用来简化它的模式:

如果这在您网站的某个区域很常见,请将此类内容放入公共文件中的init函数中。例如

global.js:

function InitSalesPageOrWhatever(){
  $(function(){ foo; });
  OtherStuffThatRunsOnEverySalesPageLoad();
}

然后在您网页上的脚本块中,例如SalesPage:

InitSalesPageOrWhatever();

它就是 - 你的内容页面只有一行。除了内容页面的优点和清洁之外,现在可以通过用户的浏览器缓存大块的JS,从而减轻您的负担并提高他们的体验。

答案 1 :(得分:1)

jQuery(以及所有Javascript)在永久性不可用的客户端运行。有两种方法可以达到您寻求的永久性。

  1. 编写jQuery plugin并将其包含在您的页面中。

  2. 编写一次单击处理程序,并使用服务器端代码/脚本语言将其包含在每个HTML页面中。 PHP包含的示例是here

  3. 这可能是考虑HTML模板的好时机 - 包含应包含在网站每个页面中的标准HTML(页眉,页脚,导航等)的文档。