我有两个id为“display”和“display2”的div,我把我的函数的结果放在哪里。
以下代码的作用是打印Ex: "test ٠١٢٣٤٥٦٧٨٩ hello مرحبا "
,行距为one two three four
,当您按左右键时,它会移除上一项的跨度并放置跨度在下一个项目。
我的最底部还有一个点击功能,当点击跨度时,display2将显示一个应该计数的数字。
问题是:
当屏幕加载且没有按下任何键时,单击跨度,例如one
将正常增加显示2中的数量。
按下左右键后,假设跨度为<span>one</span>
,如果单击<span>three</span>
,则#display2中的计数器不执行任何操作。为什么这样,我该如何解决?
<span>three</span>
答案 0 :(得分:1)
此行可能导致此问题:$('span').click(function(){....
该选择器将为您提供页面上的所有当前跨度标记。 更新显示后,其中的跨度不再与事件绑定时的跨度相同。 因此,您需要将事件委托给文档,正文或显示,以便在显示中插入的任何新跨度也可以使用单击处理程序。 另一种方法是每次设置显示的.html()时手动重新分配点击处理程序,但效率很低。
尝试这样的事情:
$('body').on('click', 'span', function() {
k++;
$('#display2').html(k);
});
基本上,你告诉身体,一旦点击任何跨度就运行该功能。这将在运行时进行检查,因此它将适用于任何未来创建的跨距,只要body标签本身不会被替换。