具有点击事件的完整日历事件资源



在最新版本的完整日历上,我有一个链接环绕着我的活动资源。 当您双击事件资源名称时,我希望弹出一个模态。

我遇到的问题是,一旦日历加载,它就会为每个资源加载每个模式,就好像我只是双击它们一样。

有没有人遇到过这个问题,有人知道如何解决它吗?

resourceRender: function(renderInfo) {
if(renderInfo.resource.extendedProps.unassign==false)
renderInfo.el.querySelector('.fc-cell-text').innerHTML = "<a ondblclick=" + showProfileModal('staff', renderInfo.resource.id) + " class='text-staff'>" + renderInfo.resource.title + "</a>";
else
renderInfo.el.querySelector('.fc-cell-text').innerHTML = "<span class='text-red'>" + renderInfo.resource.title + "</span>";
},

问题在于您创建超链接的方式:

.innerHTML = "<a ondblclick=" + showProfileModal('staff', renderInfo.resource.id) + " class='text-staff'>"

在这种情况下,showProfileModal()不是 HTML 字符串的一部分,而是被视为要执行的实际代码......所以这就是发生的事情,它被执行了。

您正在使用它,就好像该函数的结果是要包含在 HTML 字符串中的东西一样。如果您希望将其视为文本,将其添加到HTML声明中,然后将其包含在字符串中:

.innerHTML = '<a ondblclick="showProfileModal('staff','' + renderInfo.resource.id + '')" class="text-staff">'

演示:https://codepen.io/ADyson82/pen/WNeKYav?&editable=true&editors=001

(当然,如果您想使代码不那么混乱,而不会使所有字符转义等,则可以使用createElementaddEventListener来创建超链接并改为设置双击事件处理程序。

最新更新