jQuery单击事件未触发。奇怪的结果

时间:2013-04-02 05:11:48

标签: jquery onclick

所以我有点击事件:

$(".pickerOpt").click(function() { 
    $(this).child('span').show();
});

和此:

<ul id="hair" class="picker">
<span>Hair</span>
    <li id="a" class="pickerOpt"><span>.</span></li>
    <li id="b" class="pickerOpt"><span>.</span></li>
    <li id="c" class="pickerOpt"><span>.</span></li>
    <li id="d" class="pickerOpt"><span>.</span></li>
    <li id="e" class="pickerOpt"><span>.</span></li>
    <li id="f" class="pickerOpt"><span>.</span></li>
</ul>
<ul id="eye" class="picker">
    <span>Eyes</span>
    <li id="g" class="pickerOpt"><span>.</span></li>
    <li id="h" class="pickerOpt"><span>.</span></li>
    <li id="i" class="pickerOpt"><span>.</span></li>
    <li id="j" class="pickerOpt"><span>.</span></li>
</ul>

默认情况下,跨度是隐藏的,当我点击li(现在是一个看起来像swaure的块元素)我希望它显示它,但它不起作用。我将click事件设置为h2,当我通过console.log(“derp derp”)时,它实际上有效,但每次我点击它时,它都会在控制台中触发5次。我刷新了页面,不会再这样做了。

请帮忙,我得抽出这个网站。这是实时版本:http://scoutsamerica.com/admin/addmodel.php

3 个答案:

答案 0 :(得分:1)

$(".pickerOpt").unbind().click(function (e) {

//your content here 

}

单击是仅绑定一次

答案 1 :(得分:0)

jQuery中没有.child()方法,你想要的是.children()

答案 2 :(得分:0)

虽然您的问题不明确,AFAIU,请尝试使用&gt; = jQuery 1.7 .on

$(document).on('click', '.pickerOpt' , function() { 
    $(this).children('span').show();
});

Working DEMO