单击外部jQuery选择器仍会激活功能

时间:2013-05-21 05:31:56

标签: jquery css

按照JS Riddle中的这些步骤查看问题:

  1. 转到http://jsfiddle.net/MjrFC/1/
  2. 在结果区域中,单击“test”一词,这将打开第1点
  3. 您应该只能单击单词test(point1)和单词hey(point2),但如果单击h1标签,表示Hello,则转到第1点。
  4. 以下代码

        <div class="contentb">
            <h1>testing hello world</h1>
            <div class="point1">test</div>
        </div>
    
            point1 = '<div class="contentb"> <h1>Hello</h1><div class="point1"> test</div><div class="point2">Hey</div><h1>World</h1></div>';
            point2 = '<div class="contentb"> <div class="point1"> test</div></div>';
    
           var className = "Broken";
           $(document).on('click', '.contentb [class]', function () {
               $(this).fadeTo(250, 0.25, function () {
                   className = this.className; 
                   $('.contentb').html(window[className]); 
    
                   $(this).fadeTo(250, 1.00);
    
               });
           });
    

1 个答案:

答案 0 :(得分:2)

您的point1point2变量不应包含contentb div,因为您要将html附加到类contentb的元素

point1 = '<h1>Hello</h1><div class="point2"> test</div><div class="point2">Hey</div><h1>World</h1>';
point2 = '<div class="point1"> test</div>';

var className = "Broken";
$(document).on('click', '.contentb [class]', function () {
    $(this).fadeTo(250, 0.25, function () {
        className = this.className; 
        $('.contentb').html(window[className]); 

        $(this).fadeTo(250, 1.00);

    });
});

演示:Fiddle