0

在此脚本中,目标是在单击#packet 时附加/生成元素“#sauce”,然后在再次单击#packet 时“触发”。

到目前为止,脚本创建了火灾,然后创建了一个新的“#sauce”,但是新的“#sauce”没有绑定到函数 fireA()。

所以 .on('click' 我认为应该运行两个函数-首先触发#sauce并将新的#sauce附加到#saucebox,这将成为再次单击触发的下一个元素......基本上是弹药重新加载:)

    $(document).ready(function() 

    {


$("#rip_tab").click(function () {
      $(this).toggleClass("rip_tab_ripped");
    });  


function fireA() { $("#sauce").removeClass("sauceWait").switchClass("sauce_hide", "sauce1", 200).switchClass("sauce1", "sauce2_fall", 400);}


    $('#packet').on('click', function() {
if ($('#rip_tab').hasClass("rip_tab_ripped")) 

    {       

   var events = [fireA];

   //declare counter
   if(!this.counter) { this.counter = 0; }

   events[this.counter]();
   this.counter = (this.counter + 1) % 3;

}

    });


$(document).on('click','#packet', function () {
$('#saucebox').append('<div id="sauce" class="sauce1 sauce_hide sauceWait sq1"></div>');
$fireA();
});

  });

如果我使用初始的“#sauce”,它会触发并正确生成另一个“#sauce”,但新的#sauce 不会绑定到函数 fireA()

<div id="saucebox">
<div id="sauce" class="sauce1 sauce_hide sauceWait sq1"></div>
</div>

如果没有初始的“#sauce”点击会正确生成另一个“#sauce”,但同样,新的#sauce 不会绑定到函数 fireA()

<div id="saucebox">
<div id="sauce" class="sauce1 sauce_hide sauceWait sq1"></div>
</div>
4

1 回答 1

0

您不能在一个文档中多次使用同一个 ID。您必须选择不同的 ID 或使用其他选择器。 #sauceuses document.getElementById,它只会选择第一个。 [id=sauce]应该选择两者,尽管从 DOM 的角度来看它仍然是错误的。

于 2012-07-27T23:59:07.170 回答