【问题标题】:Why doesn't JavaScript "onblur" function get called? [closed]为什么不调用 JavaScript“onblur”函数? [关闭]
【发布时间】:2013-03-29 18:00:11
【问题描述】:

我有一个网站,其中有一个“商店”,您可以在其中使用“硬币”购买东西。 现在,我正在创建商店并对其进行测试,所以请在此处查看 http://coinawards.net63.net/structure/shop.php

因此,当您点击“购买 40 个硬币”框时,它会弹出一个浅蓝色框,上面写着“已添加到您的购物车”。

现在,我的代码显示,一旦“购买”按钮被模糊,弹出窗口应该会消失……但事实并非如此。我将在下面发布我的代码,希望有人知道如何修复它!

代码:

function init()
{

    var buyinfobutton = $(".buyinfo");

    buyinfobutton.on("click",AddToCart);

    buyinfobutton.on("blur",popUpVanish);

    $('#confirmbox').hide();

}

onload = init;

var shoppingcart = {};

function AddToCart()
{
    // This is called properly.
    $('#confirmbox').show('normal');

}

function popUpVanish()
{
    // This is never called!
    $('#confirmbox').hide();

}

另外, 如果您看到我的网站并认为它需要对某个区域进行一些改进(我知道有些部分很糟糕),请也记下它!谢谢!

【问题讨论】:

标签: javascript jquery function dom focus


【解决方案1】:

这就是我想出的,我认为它正在寻找它。我稍微重构了你的代码。

http://jsfiddle.net/kYT5U/

$(document).ready(function() {
    $(".buyinfo")
    .click(AddToCart)
    .mouseout(popUpVanish);
    $('#confirmbox').hide();
});

var shoppingcart = {};

function AddToCart() {
    $('#confirmbox').show('normal');
}

function popUpVanish() {
    $('#confirmbox').hide();
}

更新了带有延迟和淡出的 jsfiddle http://jsfiddle.net/kYT5U/1/

【讨论】:

  • 您好,感谢您提供此新代码。它有效,但是“mouseout”是否必要......?它不会产生与模糊效果相同的效果,并且可能使用户难以看到消息。
  • 当我用单词 blur 切换出 mouseout 时,它不起作用...... jQuery 的 BLUR 问题是什么!!!??
  • 效果是什么意思?也许你的意思是 .hide()?你可以使用 fadeOut 而不是 hide()
  • 好吧,当您访问该网站时,我希望人们看到该消息几秒钟。如果他们完全移动鼠标(项目确认框很小),消息很可能会消失。对于某些人来说,这可能发生得太快了,所以鼠标 CLICK 可能会比鼠标移动有所不同。
  • @user1721665 div 元素默认情况下不适用于焦点相关事件(无论如何,在某些浏览器中,并非全部)。你必须给他们一个tabindex 属性。您可以参考下面我的回答以获取更多详细信息。
【解决方案2】:

问题是您试图在默认不支持焦点的 DOM 元素 (div) 上使用与焦点相关的事件(在某些浏览器中)。如果您使用 .buyinfo 类设置 divtabindex 属性,您的代码将按预期工作。您可以refer to the answer here 了解更多详细信息,但如果您为您的div 设置此属性,则喜欢

$(".buyinfo").attr("tabindex", -1)

然后它将按预期工作。

【讨论】:

  • 所以我把这个额外的代码sn-p加进去了?或者我用什么来代替它?因为我不太擅长理解新事物......对不起
  • 没问题,只需将其添加到您的init 函数中,它应该可以正常工作。该行所做的就是使您所有具有 buyinfo 类的 div 元素都具有 tabindex=-1 属性。
  • 好的,谢谢!是的!有用!谢谢大家
  • 不客气,很高兴能为您提供帮助。
猜你喜欢
  • 2011-09-30
  • 2011-12-02
  • 2016-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-03
  • 1970-01-01
相关资源
最近更新 更多