我正在使用Sharepoint App。它们是从sharepoint站点列表中获取联系人详细信息的一项功能。 这是我的代码:
var currentOpeningContent = '<h4 onclick="ShowJobDetail(\'' + encodeURI(currentOpeningTitle.text()) + encodeURI(currentOpeningRR.text()) '\');">'+Show details+'</h4>';
$("#open_jobs").append(currentOpeningContent);
function ShowJobDetail(title, roles)
{
$(".job_page_title").html(decodeURI(title));
$(".job_roles").html(decodeURI(roles));
}
唯一的问题是,当在“角色”中传递电子邮件ID时,由于decodeURI,它将变为纯文本。 但我想要的是当用户点击电子邮件ID时,弹出窗口应该打开。
答案 0 :(得分:0)
我不完全理解您的问题,但我认为代码已被破坏。
因为你已经在使用jQuery,而不是做这个丑陋的事情:
var currentOpeningContent = '<h4 onclick="ShowJobDetail(\''
+ encodeURI(currentOpeningTitle.text())
+ encodeURI(currentOpeningRR.text()) '\');">'
+ Show details
+ '</h4>';
$("#open_jobs").append(currentOpeningContent);
请这样做:
var $currentOpeningContent = $('<h4>Show details</h4>').click(encode);
function encode(e){
var title = '' + encodeURI(currentOpeningTitle.text()) + encodeURI(currentOpeningRR.text());
ShowJobDetail(title, roles); //"roles" is undefined! that's probably not wat you want
}
$("#open_jobs").append($currentOpeningContent);
这是您的代码的1:1“成绩单”。单击“h1”时,您可以看到“角色”未定义。您似乎忘记了函数参数之间的昏迷。
注意:永远不要将JS明确地放在HTML字符串中。那只是在惹麻烦。另外 - 当使用jQuery时 - 尝试避免普通的html字符串,而不是jQuery“HTML-generating”方法。