Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery off()在不使用';不再存在_Javascript_Jquery_Ajax_Iframe - Fatal编程技术网

Javascript Jquery off()在不使用';不再存在

Javascript Jquery off()在不使用';不再存在,javascript,jquery,ajax,iframe,Javascript,Jquery,Ajax,Iframe,我有一个iframe,内容是通过ajax加载的,而不是通过内容位置加载的。这是WordPress自定义程序预览iframe。它有点像jquerymobile,iframe中的页面会闪烁并加载新内容。也就是说,我不能为这个iframe使用加载和卸载事件,我必须将一个点击事件监听器绑定到它的内容 所以我想出了一个模拟加载事件的主意。我将向加载在iframe中的页面添加javascript,当文档准备就绪时,它执行iframe父函数,然后该函数可以将事件侦听器绑定到新的iframe内容 但是我怎样才能

我有一个
iframe
,内容是通过ajax加载的,而不是通过内容位置加载的。这是WordPress自定义程序预览
iframe
。它有点像jquerymobile,
iframe
中的页面会闪烁并加载新内容。也就是说,我不能为这个
iframe
使用加载和卸载事件,我必须将一个点击事件监听器绑定到它的内容

所以我想出了一个模拟加载事件的主意。我将向加载在
iframe
中的页面添加javascript,当文档准备就绪时,它执行
iframe
父函数,然后该函数可以将事件侦听器绑定到新的
iframe
内容

但是我怎样才能解开它,这样我就不会有任何内存泄漏?我尝试在加载的页面中添加卸载事件侦听器,但奇怪的是,卸载事件在下一个页面加载之后运行,因此具有事件侦听器的内容已经不存在了

因此,基本上我无法在内容从DOM中消失之前
off()
iframe内容。我必须
off()
当它们不在时,我该怎么做

编辑: 我想我已经解决了。只需将内容存储在变量中。看来内存不再泄漏了

var iframeContents;

this.iframeLoadEmulation = function () {
   if (typeof iframeContents !=='undefined') {
      console.log('unbinding old content');
      iframeContents.off();
      iframeContents=null;
   }
   iframeContents=$('#customize-preview').find('iframe').contents();
   iframeContents.on('click', function(){ console.log('click'); });
}

我说对了吗?这是一个好代码还是有更好的方法

您是否尝试过在卸载前执行
?是的,它根本不执行。您尝试过在卸载前执行
吗?是的,它根本不执行。您尝试过在卸载前执行
吗?是的,它根本不执行。