嗨,我有一些简单的按钮,有时候没有反应。它很少发生,但我仍然不喜欢它。如果您非常快速地点击或更快地更改导航,它会发生更多。这是我给他们的代码:
$(document).ready(function () {
$('[id*=txt]').hide();
$('[id*=hd]').hide();
$('[id*=home]').show();
$('#btnhome').css('background-color',"#555");
$('#btnhome').css('opacity',"0.4");
$('.button').click(function (){
$('[id*=txt]').hide();
$('[id*=hd]').hide();
$('.button').css('background',"transparent");
$('.button').css('opacity',"1");
$(this).css('background-color',"#555");
$(this).css('opacity',"0.4");
});
$('#btnhome').click(function () {
$('[id*=home]').show();
});
$('#btnabout').click(function () {
$('[id*=about]').show();
});
$('#btncontact').click(function () {
$('[id*=contact]').show();
});
});
它们仅用于显示和隐藏文本,它们还会在单击时更改颜色不透明度等。当他们没有反应时根本没有任何反应,好像我没有定义任何点击功能。
^这就是我基本上使用的,尝试以随机顺序击中它们并以快速方式切换(如果你快速地执行它会发生更多)。你会发现有时他们没有反应。它有点难以注意,因为它很少发生(有时更常见)所以它一开始可能不会发生但确实会发生。所以试试好几次,你会看到我在说什么。你做得越快越随机,它就会越多。
答案 0 :(得分:2)
在使用您的演示后,我注意到在每个按钮上单击某个位置时出现问题,而不是通过随机或以特定速度单击它们。最佳位置通常位于填充处按钮文本边缘的右侧。
我发现从CSS中删除.button:active{}
伪类修复了这个问题,所以我的猜测是css中按钮位置的移动会干扰click事件。我的建议是将删除的CSS样式合并到click(或mousedown)事件本身而不是:active
伪类中。
答案 1 :(得分:0)
我不确切知道为什么,但我认为问题是因为当你像这样使用选择器时:
$('[id*=contact]').myFunction();
JQuery它花费更多时间来找到正确的选择器,如果他们在下次点击之前没有找到它,就不会做出反应。 有可能在复杂的页面中,充满了div和信息,可以强调故障。
对此的支持,我试图仅更改onclick回调,它似乎更好用:http://jsfiddle.net/mMF5r/7/