我一直在与jScrollPane争斗 - v2.0.0beta11 - 2011-07-04和Jquery 1.7.1。
我正在使用ajax调用来填充包含内容的div。 在旧的jscrollpane中,只需通过ajax加载内容,然后在成功时将jscollpane方法应用于div。现在据我了解,你需要通过调用div上的方法初始化对象,然后将内容加载到窗格对象而不是div,因为它已被jscrollpane更改。
我这样做,但内容未加载。
//initialise jscrollpane on page load
$(document).ready(function() {
api = $('#functionsWindow').jScrollPane().data('jsp');
}
//ajax script
function ajaxFromLink(page,querystring,target){
theTarget = document.getElementById(target);
$.ajax({
type: "POST",
url: page,
data: querystring,
success: function(msg){
if (theTarget != ''){
if(theTarget.id == 'functionsWindow'){
api.getContentPane().html(msg);
api.reinitialise();
console.log('api method: ' + msg);
}else{
console.log('normal method: ' + msg);
$(theTarget).html(msg);
}
}
}
}
这一行api.getContentPane()。html(msg);没有插入内容。我可以确认内容是从服务器传回来的。
如果我没有初始化jscrollpane onLoad并在第一个ajax调用中执行,则滚动条将起作用。然而,随后的ajax帖子将无效。我不知道我错过了什么。感谢您的帮助。
答案 0 :(得分:1)
在全局范围内定义api
变量,它应该可以正常工作。试试这个
var api;
$(document).ready(function() {
api = $('#functionsWindow').jScrollPane().data('jsp');
});
//ajax script
function ajaxFromLink(page,querystring,target){
theTarget = document.getElementById(target);
$.ajax({
type: "POST",
url: page,
data: querystring,
success: function(msg){
if (theTarget != ''){
if(theTarget.id == 'functionsWindow'){
api.getContentPane().html(msg);
api.reinitialise();
console.log('api method: ' + msg);
}else{
console.log('normal method: ' + msg);
$(theTarget).html(msg);
}
}
}
});
}