当前位置: 首页 > 面试题库 >

jQuery click()事件未在加载的AJAX HTML元素上触发

姬天宇
2023-03-14
问题内容

该主题很好地描述了我的问题,我假设它不会以这种方式起作用,是否有办法使其起作用?(解决方法)?

这是通过AJAX加载的代码:

<div>
<div id="s0frame" class="sframe"></div>
<div id="s1frame" class="sframe"></div>
<div id="s2frame" class="sframe"></div>
<div id="s3frame" class="sframe"></div>
<div id="s4frame" class="sframe"></div>
<div id="s5frame" class="sframe"></div>
<div id="chatframe" class="chat alpha60"></div>
</div>

这是我的点击事件:

$('.sframe').bind('click', function() { 
    var seat_number = this.id.match(/\d/g);
    alert(seat_number); 
});

问题答案:

做这个。

 $(document).on("click",".sframe",function(e){
 var seat_number = this.id.match(/\d/g);
 alert(seat_number); 
 });

要么

 $(document).delegate(".sframe","click",function(e){
 var seat_number = this.id.match(/\d/g);
 alert(seat_number);

 });

编辑:

从jQuery 1.7开始,不推荐使用.live()方法。
使用.on()附加事件处理程序。较旧版本的jQuery的用户应使用.delegate()。



 类似资料:
  • 问题内容: 我正在尝试在客户端动态生成文件时在客户端上显示“掩码”。似乎为此的推荐解决方法(因为它不是ajax)是使用iframe并从onload或done事件中侦听以确定文件从服务器实际发送到客户端的时间。 这是我的角度代码: 这在Firefox中效果很好,但在Chrome中没有运气。我也尝试过使用onload函数: 但是我那里也没有运气。 有想法吗? 问题答案: 不幸的是,如果内容是附件,则无

  • 问题内容: 正如这个问题所观察到的,新添加的元素上的CSS过渡立即被忽略了-过渡的结束状态立即被呈现。 例如,给定此CSS(此处省略前缀): 此元素的不透明度将立即设置为1: 我已经看到了触发过渡以获得预期行为的几种方法: 相同的方法适用于原始JS DOM操作-这不是jQuery特定的行为。 编辑-我正在使用Chrome 35。 为什么忽略附加元素上的即时CSS动画? 这些方法如何以及为什么起作用

  • 问题内容: 我的页面上有几个链接(位于内),可用于更改CSS样式表: 现在,在更改页面上的样式之后,我想使用以下代码(在调用之后放入)获得新的背景色: 我认为问题是浏览器需要花费一些时间来下载新的样式表,并且有时我的警报消息中还会出现旧的背景色。我可以绑定一些事件,该事件仅在页面上所有样式表加载后才会提醒我吗? 目前,我所能想到的只是使用了a ,效果并不理想,因为如果要花费更长或更短的时间来加载页

  • 问题内容: 有什么方法可以获取触发事件的元素的ID? 我在想类似的东西: 当然,如果从第一种形式触发事件,则var 应该包含id ;如果从第二种形式触发事件,则var 应该包含id 。 问题答案: 在jQuery中,始终指触发事件的元素,其中传递给函数的参数在哪里。 还请注意,这也将起作用,但它不是jQuery对象,因此,如果您希望在其上使用jQuery函数,则必须将其称为,例如:

  • 将事件侦听器添加到可以使用事件委派的元素。 使用 EventTarget.addEventListener() 将一个事件监听器添加到一个元素。 如果提供了 选项对象(opts) 的 target 属性,确保事件目标匹配指定的目标元素,然后通过提供正确的 this 上下文来调用回调。 返回一个对自定义委派函数的引用,以便与 off 一起使用。 忽略 opts ,则默认为非委派行为,并且事件冒泡。

  • 问题内容: 我在我的Web应用程序中同时使用了Bootstrap和AngularJS。我很难让两个人一起工作。 我有一个元素,它具有属性 我想在用户在字段中输入时更新属性。该函数已正确触发,但是除非我使用,这是jQuery方式,而不是AngularJS方式,否则我无法访问触发事件的元素。 使AngularJS与旧式JS模块一起工作的最佳方法是什么。 问题答案: 不会将DOM元素传递给函数。这里将参