(jquery / javascript)如何在关键事件后使点击功能工作

时间:2017-04-05 08:08:38

标签: javascript jquery keyevent

我有两个id为“display”和“display2”的div,我把我的函数的结果放在哪里。

以下代码的作用是打印Ex: "test ٠١٢٣٤٥٦٧٨٩ hello مرحبا ",行距为one two three four,当您按左右键时,它会移除上一项的跨度并放置跨度在下一个项目。

我的最底部还有一个点击功能,当点击跨度时,display2将显示一个应该计数的数字。

问题是:

当屏幕加载且没有按下任何键时,单击跨度,例如one将正常增加显示2中的数量。

按下左右键后,假设跨度为<span>one</span>,如果单击<span>three</span>,则#display2中的计数器不执行任何操作。为什么这样,我该如何解决?

<span>three</span>

1 个答案:

答案 0 :(得分:1)

此行可能导致此问题:$('span').click(function(){....

该选择器将为您提供页面上的所有当前跨度标记。 更新显示后,其中的跨度不再与事件绑定时的跨度相同。 因此,您需要将事件委托给文档,正文或显示,以便在显示中插入的任何新跨度也可以使用单击处理程序。 另一种方法是每次设置显示的.html()时手动重新分配点击处理程序,但效率很低。

尝试这样的事情:

$('body').on('click', 'span', function() {
    k++;
    $('#display2').html(k);
});

基本上,你告诉身体,一旦点击任何跨度就运行该功能。这将在运行时进行检查,因此它将适用于任何未来创建的跨距,只要body标签本身不会被替换。