0
我有一段代码通过SOAP从SharePoint列表中提取所有列表项,然后以FAQ的形式将它们写入页面。由于此列表可能会变得冗长,因此我希望将它们写入页面,以便只有问题可见,并且当您单击某个问题时,该问题的特定面板以及该面板才可见。使用jquery动态显示/隐藏面板
我已经得到了代码工作的所有除一个真实窃听一大跳我 -
<link rel="stylesheet" href="/sites/someSite/System%20Resources/FAQ2.css" type="text/css"/>
<script src="/sites/someSite/System%20Resources/jquery-1.8.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$(".question").click(function(){
$("#a"+$(this).attr("id")).slideToggle("slow");});
var soapEnv =
"<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'> \
<soapenv:Body> \
<GetListItems xmlns='http://schemas.microsoft.com/sharepoint/soap/'> \
<listName>A Big Fat FAQ</listName> \
<viewFields> \
<ViewFields> \
<FieldRef Name='Question_x0020_Description' /> \
<FieldRef Name='Response'/> \
<fieldRef Name='ID'/>\
</ViewFields> \
</viewFields> \
</GetListItems> \
</soapenv:Body> \
</soapenv:Envelope>";
$.ajax({
url: "/sites/someSite/_vti_bin/lists.asmx",
type: "POST",
dataType: "xml",
data: soapEnv,
complete: processResult,
contentType: "text/xml; charset=\"utf-8\""
});
});
function processResult(xData, status) {
$(xData.responseXML).find("z\\:row").each(function() {
var iDesc=$(this).attr("ows_Question_x0020_Description");
var iResp=$(this).attr("ows_Response");
var iID=$(this).attr("ows_ID");
var liHtml = "<div class='question' id='"+iID+"'>" + iDesc + "</div><div class='answer' id='a"+iID+"'><a href='/sites/someSite/Lists/FAQ/DispForm.aspx? ID='"+iID+"'>"+ iResp +"</a></div>";
alert(liHtml);
$("#FAQ").append(liHtml);
});
}
</script>
<h1>A Big Fat FAQ</h1>
<div id="FAQ"></div>
一切的小片作品不同的是屏幕上的问题的Click事件没有响应。
在向我展示它作为liHtml变量输出的内容之后,我发现它在iDesc变量周围插入了一组额外的标签,因此没有什么可点击的。
<div class='question'id='5'>
<div>Why is the sky blue?</div>
</div>
我认为这可能是问题所在。 “问题描述”和“响应”列均设置为Rich Text,这是导致备用标签的原因。我将它们都更改为纯文本,并且除去了多余的div,并且我的问题和答案div都有正确的ID,但它仍然不起作用。这可能是另一个那些微小的语法错误的东西,但我在这里画一个空白,以说明还有什么问题。
是的,这是正确的答案。在添加问题之前,您无法添加onClick侦听器。 – disperse 2013-02-26 14:16:28
好的 - 它修复了一个非常小的警告。现在我正在观察一个奇怪的行为 - 当你打开时,一切都很好。当您切换关闭时,关闭切换会出现一个小小的“打嗝”。它分散注意力,但不会使功能失效。这是一件值得期待的事,还是我可以通过调整CSS文件来防止的东西,或者是完全不同的东西? – 2013-02-26 14:54:55