2

我正在 razor 和 jquery 的帮助下在 mvc4 中开发一个酒店应用程序。在我的应用程序中,我试图将点击事件绑定到页面中的 2 个按钮,并根据点击的按钮执行适当的操作。但是我的问题,我如何检查单击了哪个按钮?我有两个按钮的 id。我试过了,

Jquery查找单击了哪个按钮然后运行特定的If else语句?(新手)

但没有运气,因为我已经使用 body 标签将两个按钮绑定到单击事件,例如,

    $("body").on("click","#Room1, #Room2", function (e) {
    if (counter> 0) {
    //stmts
    //stmts
    if ($('#Room1').data('clicked', true))
    //stmts
    }
    else {
    if ($('#Room2').data('clicked', true))
    {
    //stmts
    alert('Room1 clicked');
    }
    else
    {
    //stmts
    alert('Room2  clicked');
    }
    //stmts
    //stmts
    }
    });

(即)。对于这两个按钮,我绑定到同一个单击,因为我几乎没有要执行的常见 stmts。但是必须检查是否单击了特定按钮并执行一些其他操作。

我可以分别绑定它们并分别定义处理程序,但只是它们有一些共同的操作,我不想重复代码。

有人可以帮帮我吗?我敢肯定那里有很多jquery专家..

提前致谢...

4

1 回答 1

0

这实际上非常简单。当您将事件委托与on方法一起使用时,事件处理程序的上下文将是委托元素。也就是说,它将是"#Room1, #Room2"选择器匹配的元素。用非常简单的话来说,事件处理程序this将指向其中的一个#Room1#Room2元素。

然后,您可以检查this.id以确定单击了哪个元素。

$(document.body).on("click","#Room1, #Room2", function (e) {
    alert(this.id + ' was clicked');

    // common code

    if (this.id === 'Room1') {
        // #Room1 code
    }

    if (this.id === 'Room2') {
        // #Room2 code
    }
});
于 2013-11-13T12:19:17.373 回答