gpt4 book ai didi

javascript - 有什么方法可以从我的 javascript 文件中以编程方式调用和执行 pjax 吗?

转载 作者:搜寻专家 更新时间:2023-11-01 05:24:24 24 4
gpt4 key购买 nike

我有一个函数等待用户点击文本类型的输入,然后等待用户按下向下和向上箭头键。当用户按下向下和向上箭头键时,函数 hoverDown() 被调用,它基本上以编程方式悬停在表格行上。当按下回车键时, window.location 被调用并加载适当的页面。问题是我正在使用 pjax在我的整个应用程序中动态加载内容并在不刷新页面的情况下推送新的 url。当我调用 window.location 函数时,pjax 不再起作用,而是加载了正确的 url 并刷新了整个页面——这正是我试图避免的。有什么方法可以从我的函数中以编程方式调用和执行 pjax 吗?相关代码:

//HTML

<div id="main">
<input type="text" class="table-search" id="search" autocomplete="off" placeholder="Search Clients..." /><table class="table" id="tblData">
<thead><tr><th>Name</th> <th>Title</th></tr></thead>
<tbody id="tblDataBody">
<tr><td><a href="http://lar.loc/cases">Scott</a></td> <td>Client</td></tr>
<tr><td><a href="http://lar.loc/cases">Billy</a></td><td>Client</td></tr>
<tr><td><a href="http://lar.loc/cases">George</a></td><td>Client</td></tr>
<tr><td><a href="http://lar.loc/cases">Sara</a></td><td>Client</td></tr>
<tr><td><a href="http://lar.loc/cases">John</a></td><td>Client</td></tr>
<tr><td><a href="http://lar.loc/cases">Megan</a></td><td>Client</td></tr>
<tr><td><a href="http://lar.loc/cases">Ben</a></td><td>Client</td></tr>
<tr><td><a href="http://lar.loc/cases">Jully</a></td><td>Client</td></tr>
<tr><td><a href="http://lar.loc/cases">Bethany</a></td><td>Client</td></tr>
<tr><td><a href="http://lar.loc/cases">Alen</a></td><td>Client</td></tr>
<tr><td><a href="http://lar.loc/cases">Jane</a></td><td>Client</td></tr>
<tr><td><a href="http://lar.loc/cases">Alice</a></td><td>Client</td></tr></tbody></table>
</div>

//Javascript

$(document).ready(function(){
$("#main").on("keydown", "#search", hoverDown);
});

function hoverDown(e) {
var $tbl = $('#tblDataBody');
var $cur = $('.active', $tbl).removeClass('active').first();

if (e.keyCode === 40) { //down
if ($cur.length) {
$cur.next().addClass('active');
} else {
$tbl.children().first().addClass('active');
}
} else if (e.keyCode == 38) { //up
if ($cur.length) {
$cur.prev().addClass('active');
} else {
$tbl.children().last().addClass('active');
}
} else if (e.keyCode == 13) {
if ($cur.length) {
window.location = $cur.find("a").attr("href");
}
}
}

//为了完整起见,CSS:

.active {
background-color: yellow;
}

如果您想实际查看这段代码以更好地理解,可以查看 this jsFiddle.

再一次,我正在尝试使用 pjax加载内容。

最佳答案

我不知道我第一次在文档中怎么会错过这个,但我找到了一种手动调用 pjax 的简单方法。

} else if (e.keyCode == 13) { 
if ($cur.length) {
// manually invoke pjax after enter has been pressed
var $url = $cur.find("a").attr("href");
$.pjax({url: $url, container: '#main'});
}
}

关于javascript - 有什么方法可以从我的 javascript 文件中以编程方式调用和执行 pjax 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14937530/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com