我是新來的使用JQuery,所以忍受着我。JQuery動態元素 - 在DOM中但無法綁定
我implmented基於這樣我在網上找到這使我的網頁上嵌套結構中的一系列div標籤的頁面上獨立步,並顯示每一個js文件的一些代碼。當我將div標籤定義爲主頁面中的靜態條目時,這一切都很好。我應該補充說這是在SharePoint主頁中實現的。
雖然最終與理想含有一些描述性文字圖像div標籤的靜態集合,和一個超鏈接它不是很靈活。滾動我的更改以使其更具可配置性。我已經實現了一些額外的代碼,這些代碼將通過對列表Web服務的ajax調用從SharePoint列表中讀取。對於列表中的每個條目,我正在構建一個包含動態所需信息的div標籤。對於測試,我目前只是通過標題。
我用下面的代碼:
$('#beltDiv').append(divHTML)
到的div追加在創建我的嵌套結構頁面上的循環。我想這會導致淡入淡出的代碼按預期工作,但我錯了。它什麼都不做。
當檢查網頁上的來源,div標籤不顯示。但是,通過IE開發人員工具欄查看時,它們在DOM模型中可用。
問題(我認爲)看起來是該featureFade代碼的開始不因div標籤不可用的工作。有沒有辦法解決這個問題?所使用的代碼如下所示:
<script type="text/javascript">
$(document).ready(function() {
var soapEnv =
"<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'> \
<soapenv:Body> \
<GetListItems xmlns='http://schemas.microsoft.com/sharepoint/soap/'> \
<listName>Carousel Items</listName> \
<viewFields> \
<ViewFields> \
<FieldRef Name='Title' /> \
</ViewFields> \
</viewFields> \
</GetListItems> \
</soapenv:Body> \
</soapenv:Envelope>";
$.ajax({
url: "_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 divHTML = "<div id=\"divPanel_" + $(this).attr("ows_Title") + "\" class=\"panel\" style=\"background:url('http://devSP2010/sites/SPSOPS/Style Library/SharePointOps/Images/01.jpg') no-repeat; width:650px; height:55px;\"><div><div class=\"content\"><div><P><A style=\"COLOR: #cc0000\" href=\"www.google.com\">" + $(this).attr("ows_Title") + "</A></P><P> </P><P> </P><P> </P><P> </P></div></div></div></div>";
$("#beltDiv").append(divHTML);
});
}
featureFade.setup({
galleryid: 'headlines',
beltclass: 'belt',
panelclass: 'panel',
autostep: { enable: true, moveby: 1, pause: 10000 },
panelbehavior: { speed: 1000, wraparound: true },
stepImgIDs: ["ftOne", "ftTwo", "ftThree", "ftFour","ftFive"],
defaultButtons: { itemOn: "Style Library/SharePointOps/Images/dotOn.png", itemOff: "Style Library/SharePointOps/Images/dotOff.png" }
});
其中div標籤被動態所附如下所示的部分。我已經註釋了按預期工作的靜態div標籤。唯一的變化是,這些由JQuery的邏輯implmented:
<div class="homeFeature" style="display:inline-block">
<div id="headlines" class="headlines">
<div id="beltDiv" class="belt">
<!--
<div id="divPanel_ct01" class="panel" style="position:absolute;background-image:url('http://devsp2010/sites/spsops/Style Library/SharePointOps/Images/01.jpg'); background-repeat:no-repeat">Static Test 1</div>
<div id="divPanel_ct02" class="panel" style="position:absolute;background-image:url('http://devsp2010/sites/spsops/Style Library/SharePointOps/Images/02.jpg'); background-repeat:no-repeat">Static Test 2</div>
-->
</div>
</div>
我難倒,爲什麼它不承認DOM中動態地添加元素。任何幫助將不勝感激。
我很高興能提供這方面的任何進一步的信息。
由於提前,
格蘭特
繼收到了答案:我已經修改了函數調用:
function processResult(xData, status)
{
$(xData.responseXML).find("z\\:row").each(
function()
{
/*alert($(this).attr("ows_ImagePath"));*/
var divHTML = "<div id=\"divPanel_" + $(this).attr("ows_Title") + "\" class=\"panel\" style=\"background:url('http://devSP2010/sites/SPSOPS/Style Library/SharePointOps/Images/ClydePort01big.jpg') no-repeat; width:650px; height:55px;\"><div><div class=\"content\"><div><P><A style=\"COLOR: #cc0000\" href=\"www.google.com\">" + $(this).attr("ows_Title") + "</A></P><P> </P><P> </P><P> </P><P> </P></div></div></div></div>";
$("#beltDiv").append(divHTML);
}
);
featureFade.setup(
{
galleryid: 'headlines',
beltclass: 'belt',
panelclass: 'panel',
autostep: { enable: true, moveby: 1, pause: 10000 },
panelbehavior: { speed: 1000, wraparound: true },
stepImgIDs: ["ftOne", "ftTwo", "ftThree", "ftFour","ftFive"],
defaultButtons: { itemOn: "Style Library/SharePointOps/Images/dotOn.png", itemOff: "Style Library/SharePointOps/Images/dotOff.png" }
}
);
}
我無法通過查看代碼,它應該被發現,並告訴是沒有的。提供更多細節 – mkoryak 2011-01-11 15:35:56
公平點。我更新了動態元素附加到的嵌套div結構。 – Grant80 2011-01-11 15:42:21
如果你這樣做是正確的,我不能告訴絆倒。我想不是。無論是,還是缺少processResult函數的大括號。 – mkoryak 2011-01-11 21:39:05