问题标签 [event-binding]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3956 浏览

javascript - 主干中绑定和开启之间的区别

Backbone.js 中的 bind() 和 on() 方法有什么区别

on() 的文档:backbone.js 中的方法文档

bind() 的文档:underscore.js 中的绑定方法文档

两者中的哪一个应该用于绑定对象的自定义事件?

使用示例:

0 投票
6 回答
37291 浏览

knockout.js - 淘汰赛中的 lostfocus/onblur 事件

我想在绑定到input. 这个函数应该在控件失去焦点时执行,即使没有输入任何内容。我试图更改事件绑定,但是当用户离开控件而不键入任何内容时它不会触发。我尝试了 mouseout 事件,但只有当用户在失去焦点后单击表单中的其他地方时才会触发 - 这不是我想要的。我希望在焦点从控件移开后立即触发,即使使用选项卡也是如此。

以下是我用于 mouseout 事件的代码:

有人可以帮忙吗?

0 投票
1 回答
215 浏览

events - 用主干监听事件的问题

我正在尝试在另一个对象中调用我的视图的“attachmentClicked”函数时进行监听。这是最初调用事件的类:

该对象在单击时调用attachmentClicked,现在在另一个创建该对象的类中,我正在尝试侦听该事件。这是那堂课

所以发生的事情是,当这个类被创建时,它最终调用 renderFiles 从服务器获取文件,然后它为每个返回的模型创建一个视图,并以它作为参数调用 bindEvent。

然后 bindEvent 尝试监听新创建的项目的 attachmentClicked 方法并将其绑定到此类的 attachmentClicked 函数。但是,它不起作用。我尝试了几种方法,但不确定我的问题出在哪里。指导将不胜感激。

0 投票
0 回答
1221 浏览

javascript - 使用 Kendo UI MVVM 的编程事件绑定不起作用

我正在尝试以编程方式将事件绑定到字段。“data-bind > events > change” 属性被添加到 DOM 元素中就好了。例如,这是我的脚本生成的 HTML:

但是,当我更改的值DropDownList(例如)时,我收到以下错误:

TypeError: handler is not a function
path/to/app/Assets/Lib/kendo/src/js/kendo.web.js
Line 6923

我不知道发生了什么 -TypeOfLoss_updateSourceUsingValue方法/属性确实存在于相应的视图模型(KendoDOMBinder._viewModel)中。

有任何想法吗?我正在使用 kendoui.web.2013.1.319。

0 投票
2 回答
89 浏览

c# - 为什么我的事件绑定失败?

我在 .aspx 页面上有一个链接按钮:

和页面后面的代码方法:

现在在运行时,我试图将事件绑定到函数内的链接按钮

但是当用户单击链接按钮时,它不会触发 Click 事件。不知道为什么。

请帮忙。

0 投票
0 回答
749 浏览

backbone.js - 如何测试是否在 Marionette.js 视图中设置了事件处理程序?

有一个Marionette.js视图充当登录表单。以下代码示例显示了相关代码部分,包括我已经修复的错误:

我注意到我的实施中有一个重大错误。在Reveal的回调函数closed中,我决定直接关闭ItemView ,这是错误的,您可以在Marionette.js 的文档中阅读:

View 实现了一个 close 方法,由区域管理器自动调用。

错误修正:应该在regionclose()上调用。我修复了这个错误。


现在我问自己如何才能真正编写一个涵盖该问题的测试。我使用Jasmine进行测试。我注意到在我错误地关闭ItemView并尝试重新提交表单后,不再调用onSignInFormSubmit事件处理程序。

这是测试的初稿,不幸的是,错误修复也失败了:

也许还可以测试事件处理程序是否已注册,例如:

0 投票
1 回答
372 浏览

javascript - 将 jQuery 元素缓存传递给方法进行修改

问题小提琴:

点击查看(尝试 #1,使用委托事件)

点击查看(尝试#2,暴力破解方法如下)

点击查看(尝试#3,重构,有我要解决的问题)

在我正在处理的一个项目中,我正在探索一种相当动态的形式。除了一些静态元素外,还有各种交互元素,可以从隐藏的“模板”标记集中克隆,并添加到业务流程的各个点。

由于动态特性,我的可靠方法是在加载时设置 jQuery 元素缓存和事件处理程序,然后让用户做任何不可行的事情,因为这种动态特性;我发现我的动态添加的元素没有点击事件。

为了解决这个问题,我为每个有问题的脚本元素手动设置了重新绑定方法。重新绑定过程涉及 A) 重新获取给定描述性选择器的元素集,B) 删除该缓存上的任何现有事件,因为这些事件适用于不完整的元素集,以及 C) 调用绑定方法以应用新的事件到整个集合。

我得到的蛮力,工作方式是这样的:

自然地,我抓住了使用几乎完全相同的代码如此频繁地重复重新绑定的机会——重构的时机已经成熟。我们有一个公共库命名空间,我在其中添加了一个rebindEvents函数......

在尝试调用它并运行该站点时,我立即将脚趾撞到了UncaughtTypeError: method click cannot be called on object undefined.

事实证明,似乎当我调用以下命令时:

$elementCache没有被传递给方法rebindEvents;当我在调试器中进入它时, $elementCache 里面rebindEventsundefined.

一些方便的 StackOverflow 研究向我揭示了 JavaScript没有引用传递,至少在我熟悉的 C/C++/C# 意义上,这导致了我的两个问题

A)我什至可以使用某种缓存引用传递重构此重新绑定功能吗?

B)如果我可以将我的重新绑定函数重构到我的公共命名空间,我将如何去做?

0 投票
1 回答
328 浏览

knockout.js - 使所有模板 foreach 绑定相同的 afterAdd 和 beforeRemove 事件函数

我需要一种方法让 Knockout 中的所有模板绑定相同的事件函数,例如:

0 投票
2 回答
11204 浏览

data-binding - Kendo UI - 如何使用 Kendo MVVM 将选中的属性(属性)和处理复选框的单击事件绑定到 viewModel

我有一个看起来像这样的页面:

现在,绑定到 isChecked 字段的 MVVM 可以正常工作,但 clickHandler 永远不会被调用。如果我从数据绑定值中删除“checked: isChecked”绑定,那么 clickHandler 就会被调用。

我还尝试为复选框设置数据绑定,例如:

具有相同的行为。

这是设计使然,还是我配置错误?

谢谢

0 投票
1 回答
140 浏览

jquery - 这是将事件绑定到元素的正确方法

我读到事件可以绑定到一个元素

以另一种方式,

哪个是正确和最有效的方法?我正在使用导轨 3。