[英]Javascript event triggering creating multiple button .on('click)
我在下面的代码中使用HTML slim。
.page
.paper
button.button.js-copier I copy things
- content_for :js_includes do
javascript:
var startingHtml = $('.page').html();
function initializePlugin() {
$('.js-copier').each(function () {
$(this).on('click', function () {
$('.page').append(startingHtml);
$(document).trigger('page-refreshed');
});
});
}
// Run it right away
initializePlugin();
$(document).on('page-refreshed', initializePlugin);
有没有一种方法可以解决以下事实:当我单击“我复制东西”按钮时,它会遍历所选按钮的所有按钮,从而创建该按钮的多个副本?
另外,有没有更好的方法来编写此代码。 我想做的就是只要单击任何按钮(第一个按钮和任何新创建的按钮)就复制按钮
安东尼
首先更改:
$('.js-copier').each(function () {
$(this).on('click', function () {
...
对此:
$('.page').on('click', '.js-copier', function () {
...
阅读此内容以了解https://learn.jquery.com/events/event-delegation/#event-propagation
然后删除“页面刷新”事件,因为您不需要它:
$(document).trigger('page-refreshed');
...
$(document).on('page-refreshed', initializePlugin);
演示解决方案:
var startingHtml = $('.page').html(); function initializePlugin() { $('.page').on('click', '.js-copier', function () { $('.page').append(startingHtml); }); } // Run it right away initializePlugin();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="page"> <div class="paper"> <button class="button js-copier"> I copy things</button> </div> </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.