0

我正在开发 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 时,弹出窗口应该打开。

4

1 回答 1

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 生成”方法。

于 2016-03-15T12:15:26.443 回答