我在使用servlet会话属性&显示div时出现问题。 JQuery的。请忍受我,因为没有上下文很难解释。
我有一个" result.jsp"页。在jsp中我有一个"生成URL"链接,空输入文本字段和" addThis" DIV。链接"生成URL"调用jquery ajax方法" utilComp()"它调用一个设置会话属性" saveLink"的servlet,返回一个值并填充空文本字段。
如果属性会话" saveLink"为null(因为生成的URL尚未点击),加载result.jsp时需要隐藏div。我这样做是通过使用if test =" $ {not empty saveLink}" div变得隐藏起来。
我的问题是把它带回来。我想要" addThis" div显示在ajax utilComp()完成之后并且一旦设置了属性saveLink。任何人都知道如何才能做到这一点?任何帮助或想法将不胜感激。
这是仅显示重要摘要的RESULT.JSP
<script type="text/javascript">
function utilComp() {
var jqXHR = $.ajax({
type: "POST",
url: "http://www.central.com/sharemake.do",
async: false,
global: false,
done: function(response){
return response;
},
fail: function(e){
alert('Error: ' + e);
}
}).responseText;
$('#savelink_id').val( jqXHR );
</script>
<a href="javascript:utilComp()"> Generate Link </a>
<input type="text" name="savelink_name" id="savelink_id" value="<c:out value="${saveLink}" />" />
<div class="addthis_toolbox addthis_default_style">
<a class="addthis_button_gmail" addthis:url="<c:out value="${saveLink}"/>" </a>
</div>
这是utilComp()
调用的servlet代码String addressID = "http://www.central.com/generate"
session.setAttribute("saveLink", addressID);
String resultToReturntoAjax = addressID ;
PrintWriter out = response.getWriter();
response.setContentType("text/text;charset=utf-8");
response.setHeader("cache-control", "no-cache");
out.println(resultToReturntoAjax);
答案 0 :(得分:1)
我不是jQuery专家,但我认为你可以通过调用$('addthis_toolbox_addthis_default_style').show()
来显示div。这应该使所有控件都具有addthis_toolbox_addthis_default_style
类并使它们可见。 (我假设你的div是该类的唯一控件;如果不是这样,你需要给它一个ID并对ID而不是类做一个选择器。)
因此,您可以根据JSP运行时(加载页面时)是否设置会话变量来设置JSP中div的初始可见性,然后在Ajax函数完成时使用jQuery设置客户端可见的div如果尚未显示。