首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >appendTo功能失效

appendTo功能失效
EN

Stack Overflow用户
提问于 2014-04-13 00:15:25
回答 1查看 72关注 0票数 0

我试图对其进行编码,以便当您悬停并单击一个单词(例如。巧克力,糖或可可“,它给出一个句子,点击另一个词,另一个句子。然后旋转的词继续旋转。

任何建议都是非常感谢的。谢谢各位:)

看看我的小提琴:http://jsfiddle.net/hE2pk/

HTML:

代码语言:javascript
复制
<div id="steps"> 
    <div id="receipe"></div>
   <div id="text"></div>

</div>

联署材料:

代码语言:javascript
复制
var words = [
'<span id="pasta">Penne</span>', 
'<span id="meat">Italian Sausage</span>',
'<span id="oil">Olive Oil</span>', 
'<span id="onion">Onion</span>'

];



var index = 0;


$(document).ready(function rotate() {
  document.getElementById('text').innerHTML =words[(index++)%(words.length)];
  if($("#text").is(":hover")){
    setTimeout(rotate, 500);
  }
  else{
    setTimeout(rotate, 100);
  }
})()


$(function(){
    $('#pasta').on('click', function () {
        $("<p>Cook 8 ounces of pasta, according to its package directions.</p>").appendTo('#receipe');

        $("#steps").html('<div id="text"></div>'); 
    }); 

});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-13 00:27:31

你的代码:

  1. <span id="pasta">…</span>附加到DOM中
  2. 将单击处理程序附加到它
  3. 之后用<span id="pasta">…</span> 100替换<span id="meat">…</span>

一旦步骤#3完成,#pasta span将与单击处理程序一起被抹掉!

正确的方法是使用事件委托。这是一种技术,您可以将事件处理程序更高地附加到DOM中(您可以合理地期望不会被销毁的东西,比如document),然后侦听向它冒出来的事件。如果事件起源于感兴趣的元素,则启动处理程序!

代码语言:javascript
复制
$(document).on('click', '#pasta', function() { ... });

下面是您的示例,修复:http://jsfiddle.net/steveluscher/hE2pk/1/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23037685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档