我正在使用带有 Zoomy 和 jmpress 插件的 jQuery 1.7.2。我也在使用从 initializr.com 下载的样板+引导程序
当您必须在照片中找到某些角色时,我正在尝试创建像 [Waldo/Wally] 这样的“游戏”。每张照片都有不同的字符可供查找。
我使用 jmpress 作为演示插件,每次找到角色时从一张照片转到另一张照片。jmpress 通过 ajax 加载内容(我需要这种行为),因为我想要快速加载网络。
问题: .on("click") 事件没有被加载的内容中存在的元素之一捕获。
作为一个例子,我将用其中一个字符解释我的问题(仅使用部分代码)。
我的 index.html 中有一些 div 来加载字符,我将使用护士角色:
<div id="nurse" class="step container" data-src="women/nurse.html" data-x="7500">
Loading...
</div>
当用户靠近该 div(步骤)时,jmpress 通过 ajax 加载 data-src(women/nurse.html)。它加载得很好。
这是nurse.html的代码
<script type="text/javascript">
new Image().src = "img/nurse_big.jpg";
</script>
<div class="descripcion">
<p>Bla, bla, bla.</p>
</div>
<div class="imagen">
<a href="img/nurse_big.jpg" class="zoom"> <img src="img/nurse.jpg" alt="Find the nurse" /> </a>
</div>
如您所见,我在#nurse div(具有 .step 类)中加载了两个 div。
当我尝试捕获点击事件时,我的 js/script.js 文件中有此代码:
$(".step").on("click", function(event){
console.log(event.target);
});
我也在尝试使用“body”标签来看看会发生什么
$("body").on("click", function(event){
console.log(event.target);
});
如果您在显示消息时检查控制台 (div.descripcion),它会捕获事件并打印。但是,在 div.descripcion 被删除并且图像出现之后,它就没有了。就像那个 div.imagen 甚至它里面的元素不存在一样。未捕获单击事件。我试图捕捉 mousemove 事件,它确实如此。
为什么没有捕捉到点击?任何的想法?
您可以看到一个工作版本:[已删除]
和不工作的版本:[删除]
更新:我忘了,如果我使用 .on("click") 它不起作用。但是,如果我使用 .on("mousemove") 例如,它可以工作。这就是奇怪的部分。.on() 正在工作,但不适用于点击事件。
更新 2:我删除了实时示例的链接,因为它们在开发版本中。我会在发布时发布最终作品的链接。感谢大家抽出宝贵的时间。特别是给我答案的@Esailija。