使用.on函数时,什么阻止点击事件被触发?

时间:2012-07-22 23:28:46

标签: jquery event-handling click jquery-on

// HTML:

 <table id="requests" class="table table-striped multiselecttable">
        <tbody>
            <tr data-uid="209" style="cursor: pointer; ">
                <td class="span5">Username</td>
                <td>
                    <a class="btn btn-success"><i class="icon-ok icon-white"></i> Approve</a>
                    <a class="btn btn-inverse"><i class="icon-remove icon-white"></i> Reject</a>
                </td>
            </tr>
        </tbody>
    </table>

// JQUERY:

if($("#requests").length) {
    //individual request approve button
    $("#requests .btn-inverse").click(function(e){
        //works!
        $(this).removeClass("btn-inverse").addClass("btn-danger").html("<i class='icon-white icon-remove'></i> Are you sure?");
    });
    $("#requests .btn-success").click(function(e){
        //works!
        e.stopPropagation();
    });
    $("#requests").on('click', '.btn-danger', function(e){
        alert('why u no trigger (╯°□°)╯︵ ┻━┻');
        e.stopPropagation();
    });
}

当我点击.btn-danger时,一切都没有发生。其他两个功能(点击)正在工作..还有很多其他的JavaScript;有什么方法可以判断点击后是否发生了什么?

2 个答案:

答案 0 :(得分:1)

工作演示** http://jsfiddle.net/JTrKZ/

你错过了关闭});我也不确定//if($("#requests").length) {但是你知道我在想什么。

希望它有助于事业:)

<强>码

//if($("#requests").length) {
    //individual request approve button
    $(".btn-inverse").click(function(e){
        //works!

        $(this).removeClass("btn-inverse").addClass("btn-danger").html("<i class='icon-white icon-remove'></i> Are you sure?");

    });
    $("#requests .btn-success").click(function(e){
        //works!
        e.stopPropagation();
    });
    $("#requests").on('click', '.btn-danger', function(e){
        alert('why u no trigger (╯°□°)╯︵ ┻━┻');
        e.stopPropagation();
    }); // <----- Here this was missing;
//}​

答案 1 :(得分:0)

.on已在jQuery 1.7版中添加,因此如果您使用的是旧版本,则无法使用。