gpt4 book ai didi

javascript - 如何在动态创建的函数调用中传递对象

转载 作者:搜寻专家 更新时间:2023-10-31 08:19:16 28 4
gpt4 key购买 nike

我有一个 jQuery 点击事件绑定(bind)到 class="thumnail"的缩略图:

$(".thumbnail").click(function(){
var obj = new Object();
obj.el = "imageEdit";
obj.id = $(this).attr("id").replace("img_","");
openDialogue(obj);
});

如你所见,我是:

  1. 制作对象“obj”,
  2. 调用函数“openDialogue”,
  3. 将我的对象“obj”传递给 openDialogue。

openDialogue 将打开一个对话框,在该对话框中我将进行 ajax 调用,检索图像路径,并用图像填充对话框。当缩略图加载到页面刷新时,作为表单操作页面,使用 php,这工作正常。

但我还需要在选择字段更改时使用 js/jQuery 填充缩略图框,我猜 jQuery 不会事件监听动态创建的元素,例如按钮或 anchor 或图像(我是错了吗?)。

当我使用选择框更改产品时,我将使用以下代码使用缩略图 jpg 填充缩略图空间:

$("#picture_row").empty();
$.each( data, function( k ) {
var id;
$.each( data[k], function( kk,vv ){
if(kk == "id"){
id = vv;
var e = $('<div class="thumbBox" id="imageBox_'+id+'"></div>');
$('#picture_row').append(e);
}
else if(kk == "file_name"){
var obj = new Object();
obj.el = "imageEdit";
obj.id = id;

var file_name = vv.replace(".jpg","_thumb.jpg");
var img = $("<img class='thumbnail' id='img_"+id+"' src='../images/products/thumbs/"+file_name+"' onclick='openDialogue("+obj+");return false;' />");
$("#imageBox_"+id).append(img);
}
})
});

如您所见,我在这些行中创建了新图像,并尝试添加一个 onclick:

var img = $("<img class='thumbnail' id='img_"+id+"' src='../images/products/thumbs/"+file_name+"' onclick='openDialogue("+obj+");return false;' />");
$("#imageBox_"+id).append(img);

出于某种原因,我无法将我的对象“obj”传递给动态创建函数调用:

onclick='openDialogue("+obj+");return false;'

我收到这个错误:

Timestamp: 9/28/2013 7:04:33 PM
Error: SyntaxError: missing ] after element list
Source File: (domain and path)/management/
Line: 1, Column: 21
Source Code:
openDialogue([object Object]);return false;

最佳答案

与其尝试内联事件处理,不如使用 jQuery .on()

var img = $("<img class='thumbnail' id='img_"+id+"' src='../images/products/thumbs/"+file_name+"' />")
.on('click', function(){
openDialogue(obj);
return false;
}) ;
$("#imageBox_"+id).append(img);

关于javascript - 如何在动态创建的函数调用中传递对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19072631/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com