首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
V2EX  ›  JavaScript

绑定一个事件的 Javascript 不能执行是什么情况?

  •  
  •   Plumes · 2014-04-04 21:15:50 +08:00 · 2525 次点击
    这是一个创建于 2050 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在一类button上绑定了一个函数
    $("button.yes.btn.btn-success").click(function(){
    alert("hello");
    });
    点击该按钮的时候,程序并没有执行
    但是把这段代码复制到chrome的调试console中,再点击该按钮,就能执行了
    这是什么情况呢?
    10 回复  |  直到 1970-01-01 08:00:00 +08:00
        1
    jsonline   2014-04-04 22:02:24 +08:00
    把你的代码发到 jsbin.com 再来讨论比较好
        2
    jakwings   2014-04-04 22:16:40 +08:00
    估计是没保证这类按钮当时是否已经存在。建议把代码发到 jsfiddle 再讨论。
        3
    NemoAlex   2014-04-04 22:46:53 +08:00
    楼主试试
    console.log($("button.yes.btn.btn-success"))
    估计就知道为什么了
        4
    alexapollo   2014-04-04 22:52:51 +08:00
    JavaScript的坑
        5
    CosWind   2014-04-04 23:22:11 +08:00 via Android
    楼主绑定该事件的时候dom ready了么
        6
    frye   2014-04-04 23:24:09 +08:00
    @CosWind
    肯定没干这个活
        7
    xh1994   2014-04-04 23:24:44 +08:00
    $(document).on('click', 'button.yes.btn.btn-success', function() {
    alert("hello");
    });
        8
    muzuiget   2014-04-05 00:03:47 +08:00
    像楼上所说,应该没在 domReady 时执行。

    $(function(){

    $("button.yes.btn.btn-success").click(function() {
    alert("hello");
    });

    });

    这样应该就好了。
        9
    captainwz   2014-04-05 11:13:22 +08:00
    估计是DOM没READY...
    $("button.yes.btn.btn-success").live('click',function(){
    ...
    });
    这样玩也应该可以...
        10
    yimity   2014-04-06 21:30:53 +08:00
    因为你执行这个事件绑定到时候还没有这个元素呢,即使dom ready 因为有可能这个元素是后来插进去的。也有可能是页面中有元素,但是执行这句代码的时候此元素还没创建好呢,此时就要等 dom ready
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3709 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 27ms · UTC 04:03 · PVG 12:03 · LAX 20:03 · JFK 23:03
    ♥ Do have faith in what you're doing.