Javascript SharePoint Web部件上的jQuery.hover不工作
我正在一个导航栏上工作,该导航栏是从SharePoint列表中删除的。除了我的Javascript SharePoint Web部件上的jQuery.hover不工作,javascript,jquery,sharepoint,spservices,Javascript,Jquery,Sharepoint,Spservices,我正在一个导航栏上工作,该导航栏是从SharePoint列表中删除的。除了我的.hover事件外,其他一切都正常工作 编辑:我将代码行更改为: $('table').hover(function () { alert(this.id); }); 我注意到,每当我将鼠标悬停在标题标签上时,警告消息都是空白的。这让我相信它甚至没有返回ID。但是,返回父元素的ID()……我一定是在做一些愚蠢的事情 当我有这个,它的工作: $(document).hover(function () { alert()
.hover
事件外,其他一切都正常工作
编辑:我将代码行更改为:
$('table').hover(function () { alert(this.id); });
我注意到,每当我将鼠标悬停在标题标签上时,警告消息都是空白的。这让我相信它甚至没有返回ID。但是,返回父元素的ID(
)……我一定是在做一些愚蠢的事情
当我有这个,它的工作:
$(document).hover(function () { alert(); });
然而,当我有了这个,什么都不会发生:
$("#Header0").hover(function () { alert(); });
你知道为什么这在SharePoint中不起作用,但如果我只做一个常规的web应用程序,它就起作用了吗
以下是我的全部代码:
/////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////
////////////////////////////////////////EVERYTHING BELOW THIS LINE IS GOOD TO GO/////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////
//Print Headers to Screen. This will drive the core functionalty of the navpart
var siteUrl = '/sites/dev';
ExecuteOrDelayUntilScriptLoaded(retrieveListItems, "sp.js");
theCounter = 0;
var Headers = new Array();
var getCurrentElementId = null;
function retrieveListItems() {
var clientContext = new SP.ClientContext(siteUrl);
var oList = clientContext.get_web().get_lists().getByTitle('myList');
var camlQuery = new SP.CamlQuery();
camlQuery.set_viewXml("<Where><IsNotNull><FieldRef Name='Title' /></IsNotNull></Where>");
this.collListItem = oList.getItems(camlQuery);
clientContext.load(collListItem);
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
}
function onQuerySucceeded(sender, args) {
var listItemInfo = '';
var listItemEnumerator = collListItem.getEnumerator();
while (listItemEnumerator.moveNext()) {
var oListItem = listItemEnumerator.get_current();
theCounter += 1;
Headers[theCounter - 1] = oListItem.get_item('Title');
}
var HeaderDisplay = _.uniq(Headers);
for (var i = 0; i <= HeaderDisplay.length - 1; i++) {
$('#TableElement').append("<th id=Header" + i + ">" + HeaderDisplay[i] + "::::::" + "</th>");
}
}
function onQueryFailed(sender, args) {
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
/////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////
////////////////////////////////////////EVERYTHING ABOVE THIS LINE IS GOOD TO GO/////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////
// You got the headers to print as expected. Right now you need to figure out how to get the current ID
// that the mouse is over. Try looking at another project you did where the mouse goes into the table header
// and the outline expands.
$("#Header0").hover(function () { alert(); });
//This should be the universal onmouseover event that will expose only links
//and values relavent to the selected header.
//$(document).ready(function onPageLoad() {
// $().SPServices({
// operation: "GetListItems",
// async: false,
// listName: "myList",
// CAMLQuery: "<Query><Where><IsNotNull><FieldRef Name='Title' /></IsNotNull></Where></Query>",
// completefunc: function completeFunction(xData, Status) {
// $(xData.responseXML).SPFilterNode("z:row").each(function () {
// var Headers = "<th>" + $(this).attr("ows_Title") + "</th>";
// $("#TableElement").append(Headers);
// });
// }
// });
//});
//////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////这条线以下的一切都很好/////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////
//将标题打印到屏幕。这将推动导航部件的核心功能
var siteUrl='/sites/dev';
ExecuteOrderLayUntilScriptLoaded(retrieveListItems,“sp.js”);
计数器=0;
var Headers=新数组();
var getCurrentElementId=null;
函数retrieveListItems(){
var clientContext=new SP.clientContext(siteUrl);
var oList=clientContext.get_web().get_list().getByTitle('myList');
var camlQuery=new SP.camlQuery();
camlQuery.set_viewXml(“”);
this.collListItem=oList.getItems(camlQuery);
加载(collListItem);
clientContext.executeQueryAsync(Function.createDelegate(this,this.onQuerySucceed),Function.createDelegate(this,this.onQueryFailed));
}
函数onquerysucceed(发送方,参数){
var listItemInfo='';
var listItemEnumerator=collListItem.getEnumerator();
while(listItemEnumerator.moveNext()){
var oListItem=listItemEnumerator.get_current();
计数器+=1;
标题[theCounter-1]=oListItem.get_项(“标题”);
}
var HeaderDisplay=uq.uniq(标题);
对于(var i=0;i尝试这样做
$('#TableElement').hover(function () {
$('#Header0').hover(function () {
$('#Header2').append("<li>" + this.id + "</li>");
});
});
$('#TableElement')。悬停(函数(){
$('#Header0')。悬停(函数(){
$(“#Header2”)。追加(“”+this.id+” ”;
});
});
我怀疑这不起作用,因为jQuery无法“找到”ID。一旦进入父级,它应该会将其提取出来。尝试这样做
$('#TableElement').hover(function () {
$('#Header0').hover(function () {
$('#Header2').append("<li>" + this.id + "</li>");
});
});
$('#TableElement')。悬停(函数(){
$('#Header0')。悬停(函数(){
$(“#Header2”)。追加(“”+this.id+” ”;
});
});
我怀疑这不起作用,因为jQuery无法“找到”ID。一旦进入父级,它应该会将其拾取。这起作用。我想我理解你的意思。这有一定道理……我仍然不明白为什么,因为选择器应该找到文档中所有有效的内容。我想我理解你的意思g、 这有点道理…我仍然不明白为什么,因为选择器应该找到文档中的所有内容。。。