jquery function' .on("点击")'开始不必要

时间:2015-09-14 20:46:51

标签: javascript jquery click hide

我有一个页面上有2个图像,如果用户点击图像A,功能A开始,如果用户点击图像B,功能B开始。 它看起来像这样:

$('#imgA').on("click", function(){
    $('.challenge').hide('slow');
    alert('a');
});
$('#imgB').on("click", function(){
    $('.challenge').hide('slow');
    alert('b');
});

HTML

<div class='challenge' id='4'> 
    <img class='inline' id='imgA'> 
    <img class='inline' id='imgB'> 
</div>

我测试了这段代码几次,大部分时间它都能正常工作,但有时我会点击#imgA并首先获得提醒(&#39; a&#39;),然后我就会收到警报(& #39; b&#39;)(或其他方式)。在我的程序中,这是一个严重的错误。

有谁知道我做错了什么?

1 个答案:

答案 0 :(得分:2)

首先将一个方法更改为 上的 。 根据您的代码,您首先必须关闭标记并在要单击的每个图像中添加事件:

HTML:

<div id="challenge">
    <div class='challenge' id='4'>

        <img style="cursor:pointer" id='a2' src='http://bit.ly/1B8xvUr' height='100px' width='200px'/>
        <img style="cursor:pointer" id='b4' src='http://bit.ly/1B8xvUr' height='100px' width='200px'/>

    </div>
</div>

<强> JQUERY

$('#a2').on("click", function () {
    alert('a');
    $(".challenge").hide('slow');
});
$('#b4').on("click", function () {
    alert('b');
    $(".challenge").hide('slow');
});

另外添加style =&#34; cursor:pointer&#34;在每个图像中查看指示它可点击的指针。

看看这里:

https://fiddle.jshell.net/q9oa978j/3/