ajax表单提交后iScroll4高度错误。高度为表单提交前的原始高度
我已将一个表单嵌入到我的 iScroll4 滚动条中。该表单是一个ajax表单,由wordpress Gravity forms插件生成。
当我在表单上点击“提交”时,iscroll(在页面加载时生成)的高度保持不变,这意味着如果按下“提交”按钮后表单变大,则无法一直向下滚动。
请参阅下面的代码...
var myScroll,
myScrollSidebar;
function loaded() {
myScroll = new iScroll('wrapper');
myScrollSidebar = new iScroll('sidebar-wrapper');
}
var formInputs = [
document.getElementById('gform_submit_button_1'),
document.getElementById('input_1_1'),
document.getElementById('input_1_2'),
document.getElementById('input_1_3'),
document.getElementById('input_1_4'),
document.getElementById('input_input_1_5')
];
for(var i = 0; i < formInputs.length; i++) {
formInputs[i].addEventListener('touchstart' /*'mousedown'*/, function(e) {
e.stopPropagation();
}, false);
}
jQuery(document).bind('gform_page_loaded', function(){
var formInputs = [
document.getElementById('gform_submit_button_1'),
document.getElementById('input_1_1'),
document.getElementById('input_1_2'),
document.getElementById('input_1_3'),
document.getElementById('input_1_4'),
document.getElementById('input_input_1_5')
];
for(var i = 0; i < formInputs.length; i++) {
formInputs[i].addEventListener('touchstart' /*'mousedown'*/, function(e) {
e.stopPropagation();
}, false);
}
});
document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
document.addEventListener('DOMContentLoaded', function () { setTimeout(loaded, 200); }, false);
谁能帮我解决这个问题,以便当表单提交时,iScroll 的高度可能会刷新?
绑定的 jquery 使得表单输入在表单提交后起作用。这是因为 iscroll4 难以处理表单元素。
提前致谢。
乔什
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要使用 myScroll.refresh() 让 iScroll 计算新的高度(在 AJAX 之后)。
这是来自开发者页面 (http://cubiq.org/iscroll-4):
You need to make iScroll compute the new height by using myScroll.refresh() (AFTER your AJAX).
This is from the developer's page (http://cubiq.org/iscroll-4):