我收到了以下代码:
function open_viewer() {
$('.image_thumb').click(function(){
var reqz = 'id='+$(this).attr('id')+'&i='+$(this).attr('i');
$.ajax({
type: 'POST',
url: 'index.php?ind=work&op=get_images',
data: reqz,
success: function (data) {
$('#viewer').remove();
$('body').prepend(data);
$('#viewer_close').click(function() {
$('#viewer').remove();
});
$('.viewer_button').click(function() {
var reqz = 'id='+$(this).attr('id')+'&i='+$(this).attr('i');
$.ajax({
type:'POST',
url: 'index.php?ind=work&op=get_images',
data: reqz,
success: function (data) {
$('#viewer').remove();
$('body').prepend(data);
}
});
});
}
});
});
}
每次按.viewer_button时我都会尝试调用$ .ajax(),结果我将代码更改为以下内容:
function open_viewer() {
var reqz = 'id='+$(this).attr('id')+'&i='+$(this).attr('i');
$.ajax({
type: 'POST',
url: 'index.php?ind=work&op=get_images',
data: reqz,
success: function (data) {
$('#viewer').remove();
$('body').prepend(data);
$('#viewer_close').click(function() {
$('#viewer').remove();
});
$('.viewer_button').click(function() {
open_viewer();
});
}
});
}
但是这会调用无限循环并且不起作用。也许有人可以指出我的解决方案?提前致谢
答案 0 :(得分:0)
为什么使用功能?
您可以使用
$(document).ready(function() {
$('.image_thumb').click(function(){
});
$('.viewer_button').click(function() {
});
});
每次点击都会执行内部代码。
答案 1 :(得分:0)
使用delegation而不是在ajax成功回调中定义处理程序。
$(document).ready(function() {
$("#parent").on("click", ".viewer_button", function(e) {
...
});
});
对于#parent
,您为最接近.viewer_button
的静态父元素选择了一个选择器。