我正在使用一个名为“Tab Slide Out”的JQuery插件,链接在这里:http://wpaoli.building58.com/2009/09/jquery-tab-slide-out-plugin/
我正在尝试将其用作反馈技术。在幻灯片上有一个表单和一个提交按钮。现在当你点击提交时,它当然会导致回发,页面加载,但反馈窗口被设置回其关闭状态。我希望窗口在回发时自动打开。以下是使用该插件的网站示例,并使其按照我希望的方式运行:http://thedemo.ca/
现在我注意到在脚本中他们在初始页面加载时有这个:
jQuery('.slide-out-div').tabSlideOut({
tabHandle: '.handle',
pathToTabImage: 'typo3conf/ext/stw_jquery_feedback/images/feedback-btn-right.png',
imageWidth: '32px',
imageHeight: '167px',
tabLocation: 'right',
speed: 300,
action: 'click',
topPos: '200px',
fixedPosition: true,
onLoadSlideOut: false
});
然后从提交按钮回发:
jQuery('.slide-out-div').tabSlideOut({
tabHandle: '.handle',
pathToTabImage: 'typo3conf/ext/stw_jquery_feedback/images/feedback-btn-right.png',
imageWidth: '32px',
imageHeight: '167px',
tabLocation: 'right',
speed: 300,
action: 'click',
topPos: '200px',
fixedPosition: true,
onLoadSlideOut: true
});
请注意onLoadSlideOut
更改的最后一个选项。这怎么可能?据说我认为最简单的解决方案就是调用tabHandle,然后滑出标签。
所以我想我的真正问题是,如何调用点击.handle。
以下是我的代码测试环境的链接:http://jakeism.info/test/
答案 0 :(得分:2)
他们正在动态渲染脚本。在asp.net中,最简单的方法是在你的aspx / ascx中使用:
<script type="text/javascript">
jQuery('.slide-out-div').tabSlideOut({
tabHandle: '.handle',
pathToTabImage: 'typo3conf/ext/stw_jquery_feedback/images/feedback-btn-right.png',
imageWidth: '32px',
imageHeight: '167px',
tabLocation: 'right',
speed: 300,
action: 'click',
topPos: '200px',
fixedPosition: true,
onLoadSlideOut: <% Response.Write(Page.IsPostBack ? "true" : "false") %>
});
</script>
请注意onLoadSlideOut
的scriptlet。现在这个逻辑可能不会完全符合你的要求-e.g.任何回发都会导致它被渲染打开。所以,只需用适当的条件替换条件。
更好的方法是使用ajax发布到WebService
,而不是发布整个页面,因此根本没有回发。然后在让用户知道已收到他们的反馈后,干净地关闭滑动。
答案 1 :(得分:0)
我会说你最好的选择是通过ajax调用来提交,然后你可以做一些客户端验证等等。如果成功你可以将它重新插入。世界就是你的牡蛎。
我推荐这条路线,好像有人在没有启用javascript的情况下访问您的网站时,功能将受到限制,并且您的回发方法将正常工作(假设如果未在页面加载时隐藏,则会自动显示该框)。