Javascript在ajax请求后不执行元素
Javascript not executing on elements after ajax request
我有一个包含一些图像的表,当调用Ajax时,它会删除以前的表并返回包含新图像的另一个表。
$("img").click(function(){
$.post("gallery.php", function(data){
$("#left-gallery, #right-gallery").html("").append(data);
});
});
这就是我如何从php文件中获取信息。
问题是新元素不触发前一个元素使用的点击事件。
如果我点击表中的图像,它应该替换表外页面上的另一个图像。
$("#left-gallery img").click(function(){
$("#left-gallery td").removeClass("highlighted");
var source = $(this).attr("src");
$("#image1-image").attr("src", source); //replaces a big image outside the table
$(this).parents("td").addClass("highlighted");
});
表图像嵌套如下:
<tr>
<td>
<a href = "image.jpg">
<img src = "image.jpg">
Image
</a>
</td>
</tr>
即使阻止默认行为也不起作用。
$("td a").click(function(e){
e.preventDefault();
});
javascript在<body>
之后,是内部的。我不知道如何获得点击事件或任何工作在返回的表和任何帮助将不胜感激。
谢谢你。
使用委托,因为您正在动态修改DOM
$('#left-gallery').on('click','img',function(){
// your code here
})
通过这样做,您将事件处理程序附加到静态的#left-gallery元素=。然后,它将监听来自后代图像的点击事件,并在它们冒泡时处理它们
取决于你使用的是哪个版本的jQuery
$("元素")。Live ('event',function({code here.}));//jQuery 1.3+
$('staticparent').delegate('element', 'event', function(){这里的代码…});//jQuery 1.4.3+
$ (' staticparent ')。On ('event', 'element', function(){代码在这里..});//jQuery 1.7+
你在做
$("#left-gallery img").click(function(){
将事件处理程序绑定到图像..修改dom后,图像不再存在。而且你从来没有将事件处理程序绑定到新添加的图像上所以这就是为什么点击没有做任何事情
相关文章:
- jQuery-将列表项的一个元素移动到同一项的另一个元素中+对我的列表中的每个项执行此操作
- 如果数组仍在执行,async.forEach()将运行我添加到数组中的新元素
- 有没有一种方法可以让内联事件处理程序在元素创建后立即执行
- 单击元素两次后执行操作
- toogleClass函数来切换元素类并在事件期间执行某些操作
- 只要用户将鼠标悬停在jQuery中的某个元素上,就可以执行多次单击
- Angular 指令似乎没有使用元素传入的选项执行
- 为什么在ASP.NET Ajax更新面板中执行任何操作后javascript元素都停止工作
- 使用html 5对元素执行自定义表单验证功能
- 执行 If 语句,仅当元素存在时
- 在两个元素的 onrender 事件之后执行函数
- 在将ajax内容应用到元素后执行js函数
- 对未知数量的元素执行Jquery循环
- touchstart和touchend事件引用相同的元素,而事件在不同的元素上执行
- Jquery执行基于元素'的父标记
- 这是关于Jquery/JS的,如果我改变元素's HTML-我可以对它执行其他Jquery/JS操作吗
- jQuery-等待此元素,然后执行1次
- 删除对象时执行元素指令动画的角度方式
- 正在执行元素atrribute中定义的回调
- Javascript在ajax请求后不执行元素