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