Javascript 多次调用函数
我有一个清单HTML结构如下Javascript 多次调用函数,javascript,jquery,jquery-mobile,Javascript,Jquery,Jquery Mobile,我有一个清单HTML结构如下 <li class="game-box showlist" id="papp_1249" data-tag="Junior KG,Maths"> <div class="game-box-link" data-id="1249" data-active="yes" data-orientation="landscape" data-ajax="false" data-url="http://totsmart.in
<li class="game-box showlist" id="papp_1249" data-tag="Junior KG,Maths">
<div class="game-box-link"
data-id="1249" data-active="yes" data-orientation="landscape"
data-ajax="false" data-url="http://totsmart.in/scale_concept"
data-transition="none">
<img src="http://example.com/abc.jpg" class="game-thumb">
</div>
<div class="game-title">
<div class="btn-container">
<a href="#login" class="box-btn4">
<img src="css/assets/Login.png">
</a>
<div class="box-btn4 price-btn">
//clicking this using trigger
<span class="game-price buy" data-id="">Free</span>
</div>
<span class="sm_box-btn expand">
<img src="css/assets/drop.png">
</span>
<div data-id="1249" data-active="yes" data-orientation="landscape"
data-ajax="false" data-url="http://example.in/scale_concept"
data-transition="none" class="game-box-play-link sm_box-btn">
<img src="css/assets/Play.png">
</div>
</div>
<div class="game-content">
<p><strong>Subject</strong>: Maths
<br>
<strong>Class</strong>: KG – KG – Junior & Senior
<br>
<strong>Description</strong>
<br>Drag and drop objects to one out of the two empty boxes and practice the scale concepts like – Big-Small, Fast-Slow, Tall-Short etc.
</p>
</div>
</div><span class="game-box-title">Scale concepts</span>
</li>
我的问题是,当我第一次点击游戏盒链接时,如果我第二次点击游戏盒链接时,我就调用了一次游戏盒链接。我只需要给它打一次电话。我哪里做错了
这是我的控制台日志的屏幕截图。您可以看到它燃烧7次:
添加
e.stopPropagation()代码>到您的函数
$("body").on('vclick', '.game-box-link, .game-box-play-link', function (e) {
e.preventDefault();
e.stopPropagation();
var application_id = $(this).data('id');
console.log('game-play-clicked');
check_app(application_id, this);
});
check_app(application_id, this)
{
alert('clicked');
}
子对象上的单击事件也发生在父对象上,这就是事件被多次触发的原因。不,我没有循环它。此
不能被接受为参数
。您的函数应该类似于函数检查应用程序(应用程序id,\u this){alert('clicked');}
从函数开始
。如果您通过调用某个函数绑定vclick
事件,那么它可能每次都注册一个新的vclick
。提供一个可以复制它的小提琴…父元素是li
,您确定它正在发生吗?仍然多次触发更新了我的问题。请看它是由于触发。请看一看
$("body").on('vclick', '.game-box-link, .game-box-play-link', function (e) {
e.preventDefault();
e.stopPropagation();
var application_id = $(this).data('id');
console.log('game-play-clicked');
check_app(application_id, this);
});
check_app(application_id, this)
{
alert('clicked');
}