在进行pjax调用时,如何调用在$(document).ready()上调用的jquery?

时间:2017-09-26 20:02:42

标签: javascript jquery html pjax

我是pjax初学者,不确定我实现它的方式是否正确。我有一个带有很多jquery的旧项目。为了组织它,我遵循的方法是,为每个页面的主体<body id="Login">分配一个唯一的ID。在我的布局中,我编写了代码:

var page = $('body').attr('id');
if(page !== '' && typeof self[page] != 'undefined')
   self[page].init();

对于特定于页面的jquery,我写过这样的东西:

var Login = (function() {
    var funct = {};

    //any variables, only required on this page

    funct.someFunction = function(){
      //code
    }

    funct.init = function(){
        //all the functions that are to be called on page load
    }
    return funct;

})();

现在,在每个页面加载时,只执行页面上所需的代码。但是,我现在正在创建pjax链接的大部分链接。因此,在登录页面上,有一个链接:

<a data-pjax href="/register">Register</a>

并且布局包含代码:

$(document).pjax('a[data-pjax]', '#pjax-container');

这将打开注册页面。但是,由于正文ID仍为“登录”,因此未加载 Register.init()

我如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

我从未使用过pjax但是根据他们的文档,你可以在页面更改完成后添加一个事件监听器来运行一些代码

event.target

您应该可以使用<?php //Create connection credentials $db_host = 'localhost'; $db_name = ''; $db_user = ''; $db_pass = ''; //Create mysqli object $mysqli = new mysqli ($db_host, $db_user, $db_pass, $db_name); //Error Handler if($mysqli->connect_error){ printf("Connect failed: %s\n", $mysqli->connect_error); exit(); } <?php //Set question number $number = (int) $_GET['n']; /* * Get Question */ $query = "SELECT * FROM `questions` WHERE question_number = $number"; //Get result $result = $mysqli->query($query) or die($mysqli->error.__LINE__); $question = $result->fetch_assoc(); ?> 做一些事情,这应该是被点击的链接,以便弄清楚新页面是什么。