【问题标题】:Creating custom event out of window.onhashchange functionality, for jquery为 jquery 创建 window.onhashchange 功能之外的自定义事件
【发布时间】:2012-12-29 04:48:07
【问题描述】:

我认为在收集有关如何解决我的问题的一些信息后重新表述整个问题会更好。

现在的简单问题是如何使用window.onhashchange 功能创建自定义事件。

我想这样做是因为您可能知道您无法在 javascript 加载的内容上附加处理程序,您可以通过以下方式解决此问题

$('parent').on('event', 'child', func) 对吗?这相当于 jquery 委托功能。

如何从window.onhashchange 创建自定义事件

【问题讨论】:

  • 这个问题有点难读。你想发生什么?什么没有发生?当它没有发生时,浏览器会告诉你什么?
  • 嗯,我问题的最后一部分将能够告诉你我在说什么,谢谢
  • 我要编辑这个问题,全部。贝克。我想我在研究后有更好的方法来问它

标签: javascript jquery hash delegates


【解决方案1】:

哦哦。好的。好吧,window 是唯一对 hashchange 触发有意义的东西,所以我不确定你为什么想要事件委托。听窗。当哈希值发生变化时,对当前存在的任何 HTML 执行您想要的操作。

您实际上可以将处理程序附加到 JavaScript 附加的内容。如果它在 DOM 中,那么您可以对其进行操作和监听事件。问题是当您替换 html 内容时。原来的 dom 节点已经消失,所以如果你有一个 click 事件,它会注册到一个不再存在的节点。

但是窗口只能通过重新加载页面来替换,这是唯一与哈希更改相关的事情。 'hashchange' 也不是真正的 DOM 事件。如果它在一个元素上触发是有意义的,我不确定它是否还会像“点击”这样的事件那样冒泡。

简短版:如果您需要在此“hashchange”事件上发生一些事情,我不确定您是否遇到了您认为遇到的问题。

【讨论】:

  • 你是对的,html被替换了,但我希望被替换的内容可以处理 hashchange 事件,有意义吗?
  • 内容未触发 hashchange 事件。它在窗口上触发。处理程序是在窗口上触发 hashchange 事件时应该触发的函数。使用处理函数更改您想要的任何 HTML。
猜你喜欢
  • 1970-01-01
  • 2013-02-18
  • 2013-01-15
  • 1970-01-01
  • 1970-01-01
  • 2016-03-07
  • 2020-08-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多