javascript - 在 jQuery.on() 事件调用的现有 Javascript 函数中使用 "this"作为参数

标签 javascript jquery html event-handling jquery-events

问题:

我的 HTML 代码中有一些带有 optionsselect,并且我设置了一个 on Change 事件处理程序,以弄清楚何时选择将会改变。

以下代码显示了获取更改的 jQuery 代码:

 $(document).on('change', '.anyHtmlSelect', updateState);

我有一个现有的 Javascript 函数,应该将其用作回调函数。

Javascript 函数如下所示:

function updateState(element) 
{  
    var currentId = element.attr("id");
}

问题:

如何将更改选择作为元素

我尝试过以下方法:

 $(document).on('change', '.anyHtmlSelect', updateState($(this));

但它不起作用。

最佳答案

自动传递给事件处理程序的第一个参数是对事件本身的引用,而不是引发事件的元素。要访问触发事件的 DOM 元素,请使用 this:

只需更改:

function updateState(element) 
{  
    var currentId = element.attr("id");
}

至:

function updateState(event) {  
    var currentId = this.attr("id");
}

关于javascript - 在 jQuery.on() 事件调用的现有 Javascript 函数中使用 "this"作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44991179/

相关文章:

javascript - jquery 非选择器不适用于事件类

javascript - 如何使用 jQuery 创建流畅的 html 元素

javascript - 在android中使用javascript设置内容时的编码问题

javascript - 禁用表单自动提交

javascript - 使用 VUE 在一个页面上创建多个模态框

javascript - Jquery append Stripe 支付按钮返回 [object HTMLScriptElement]

javascript - 从 firefox 扩展新加载的选项卡中列出并调用 js 函数

javascript - 将 jQuery.pageless 与 turbolinks 结合使用

php - 当资源路径是相对的时,无法使用 include 函数

Javascript Regex - 使用白名单清理字符串