gpt4 book ai didi

jquery - 如何通过主干事件处理程序获取触发事件的元素

转载 作者:行者123 更新时间:2023-12-03 22:39:47 27 4
gpt4 key购买 nike

我有一个观点。

//define View
var CreatePollView = Backbone.View.extend({
events: {
"click #addOption": "addOption",
"change .dynamicInput": "changeInputs"
},
initialize: function () {
_.bindAll(this, "render", "addOption", "changeInputs");
this.model.bind('change', this.render);
},
changeInputs: function () {
var newVal = $(this).val(); // this throws exception in jquery script
this.model.set("Subject", { Subject: newVal });
}, ....

如何访问触发更改事件的元素(它是输入元素)?

最佳答案

您收到异常是因为您在 changeInputs 上调用 _.bindAll。当您这样做时,您是在说 changeInputs 每当被调用时都会绑定(bind)到对象的上下文。

换句话说,当您引用 $(this) 时,您正在向 jQuery 发送一个 CreatePollView 实例,而 jQuery 不喜欢这样。

但是,您希望保留此绑定(bind),因为您正在访问模型 (this.model),因此 this 需要是 CreatePollView< 的实例.

相反,您可以从函数中获取事件并使用目标或其他一些信息:

changeInputs: function(e) { }

关于jquery - 如何通过主干事件处理程序获取触发事件的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7714795/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com