jQuery:“this”找不到.html()生成的元素

时间:2013-07-05 17:24:03

标签: jquery this

首先,如果主题不清楚,请抱歉。

我正在尝试构建一个简单的顺序菜单。用户单击第一个选项,然后找到新的子选项。我认为代码不言自明。

<div id="box">
Welcome text<br>
<ul>
    <li class="option" id="opt1">Option 1</li>
    <li class="option" id="opt2">Option 2</li>
</ul>
</div>

<script>
var nextText = "<p>Next text with two more options.</p><ul><li class='option' id='opt1a'>Option 1a</li><li class='option' id='opt1b'>Option 1b</li></ul>";

$("#box li").click(function() {
  var ev = $(this).attr('id');
  if (ev==="opt1") {
    $("#box").html(nextText);
  }
});
</script>

1 个答案:

答案 0 :(得分:0)

您将点击处理程序绑定到首次加载页面时存在的元素。稍后添加的元素没有单击绑定。您可以使用.on

的委派在jQuery中解决此问题
$("#box").on("click", "li", function() {
    var ev = $(this).attr('id');
    if (ev = "opt1") {
        $("#box").html(nextText);
    }
});