Javascript removeEventListner不工作

Javascript removeEventListner不工作,javascript,addeventlistener,Javascript,Addeventlistener,我已经用我能想到的最少的代码重新创建了我的问题 基本上,我有一个iFrame,它使用用户通过表单发布的数据来使用addEventListener。它工作得很好,直到用户再次发布,然后出现2个EventListener。我尝试过使用removeEventListener,但在这种情况下不起作用 以下是我为重现问题所做的工作: TESTbuffer.php 同样的结果 感谢任何帮助:D您需要刷新文档中的所有mouseup事件。在这里,你有两个选择 选项1:使用jQuery,但它是干净的: 使用 进入

我已经用我能想到的最少的代码重新创建了我的问题

基本上,我有一个iFrame,它使用用户通过表单发布的数据来使用
addEventListener
。它工作得很好,直到用户再次发布,然后出现2个EventListener。我尝试过使用
removeEventListener
,但在这种情况下不起作用

以下是我为重现问题所做的工作:

TESTbuffer.php 同样的结果


感谢任何帮助:D

您需要刷新文档中的所有
mouseup
事件。在这里,你有两个选择

选项1:使用jQuery,但它是干净的:

使用

进入
TESTbuffer.php

选项2:不使用jQuery,但脏:

使用这个():

TESTbuffer.php
中,将事件附加到
正文而不是文档:

parent.document.body.addEventListener('mouseup', outputInput, false);

我们到底应该在哪里键入“hello”并单击“Go”?以lol的形式,在TESTparent.phpAny中,涉及“lol”表达式的问题澄清让我担心,并暗示了相当强烈的意思(如果不是字面意思的话)你没有认真对待我们的帮助。@Stretch-那么你想让我们在某个地方重新创建你的网站和你的问题吗?这里的问题是每次提交表单时你的
TESTbuffer.php
页面都会重新加载。当页面重新加载时,新加载的页面有一个全新的JavaScript环境,这意味着一个全新的
outputInput
。您正在尝试删除新页面的
outputInput
,这与已消失的旧页面的
outputInput
不同。
<iframe name="bufferiframe" id="bufferiframe"></iframe>
<form name="Test" method="POST" action="TESTbuffer.php" target="bufferiframe">
    <input type="text" name="input">
    <input type="submit" value="Go">
</form>
function startListener() {
    parent.document.addEventListener('mouseup',outputInput,false);
    parent.document.removeEventListener('mouseup',outputInput,false);
    parent.document.addEventListener('mouseup',outputInput,false);
}
function startListener() {
    $(parent.document).off('mouseup');
    $(parent.document).on('mouseup', function () {
        // do event handler stuff here
    });
}
var el = parent.document.body,
    elClone = el.cloneNode(true);

el.parentNode.replaceChild(elClone, el);
parent.document.body.addEventListener('mouseup', outputInput, false);