如何捕获任务窗格中动态内容上的单击事件?

时间:2019-02-02 23:03:59

标签: ms-word office-js add-in

我有一些代码可以成功地从文档中获取文本,对其进行一些处理,并在任务窗格中的动态div中呈现变化。

现在,我只是想在控制台日志中注册对动态div之一的单击,但没有看到任何事件发生。但是当我停止并重新启动VS中的代码时,我在控制台中看到了这一点...

  

项目详细信息已点击!未定义

所以,有些东西正在注册。

我正在阅读Office.js文档和其他博客文章,但似乎找不到我在做错什么。

我尝试了这些变化,但无济于事。

// dynamic div
var myDetails = 'details-S' + myId + 'I' + idxWarn;
var myDetLink = ' <div class="linkItemDetails" id="' + myDetails + '">...</div>';

function clickedItemDetails() {
console.log("Item Details Clicked! " +JSON.stringify(this));
}

$('.linkItemDetails').click(clickedItemDetails);
$('.linkItemDetails').on('click', clickedItemDetails());
$('.vtsItemDetails').bind("click", clickedItemDetails);
$('#parentDivItemCategories').on('click', '.linkItemDetails', function () { clickedItemDetails() });

现在,当我停止并重新启动VS中的代码时,我会在控制台中看到此信息... 项目详细信息点击!未定义

因此,某处正在注册。只是不是我想要的时间/地点/方式。

有人可以指出我正确的方向吗?

1 个答案:

答案 0 :(得分:1)

无视。我的代码正确,但父div ID错误。感觉像个新手。但是等等,我是!无论如何,如果您具有正确的父级div ID,则此代码有效

$('#parentDivItemCategories').on('click', '.linkItemDetails', function () { clickedItemDetails() });