0

我正在附加一个带有图像的表格行,当您单击它时,它会触发一个事件。但是,您似乎无法动态添加“可点击”图像。

单击时,所有带有图像的先前行都由其类属性标识(它们与页面一起加载)。

我要避免的是使用实时事件并制作一个单独的功能,我只想让它像所有其他人一样点击:(

所以问题是,如何添加一个事件,使现有(已被使用)函数在单击时识别动态添加的图像的类......?


感谢您的帮助,但我对 jquery 和命名函数完全一无所知

最后,我创建了一个实时事件并从原始函数中复制了代码。如果有人知道我如何从两个进程中调用一个函数,将不胜感激。

4

2 回答 2

1

假设您有一个要在添加新图像时应用的命名函数:

function doSomeMagicThing() { //handle image }

您可以包装您的imghtml,例如:

//work now on $newImage, which is a jquery element containing your new image.
var $newImage = $('<img src="some_path.png" />');

//Remember it is not yet in your page, so you will have to 
//append it when you are done working with it.
$newImage
    .click(doSomeMagicThing);                        //add click event
    .appendTo($('someSelectorWhereToAppendTo'));     //append it somewhere!
于 2009-12-18T11:03:18.110 回答
0

您可以像在任何 JavaScript 中一样创建命名函数:

function myFunc(){

}

在您的 jQuery 代码中,您可以使用.click(myFunc). 该函数myFunc作为“回调”传递。在您的旧代码中,您一直以相同的方式将匿名函数作为回调传递,假设您做了类似.click(function(){ }).

一个常见的陷阱是意外写入.click(myFunc()),它将返回值作为myFunc回调而不是myFunc自身传递。

在大多数情况下,您可以将函数视为变量(它们以类似的方式具有“范围”,但函数不能在以后重新定义)。您甚至可以通过将匿名函数分配给变量来创建命名函数:

var myFunc = function(){

}

然后你可以myFunc像对待任何其他变量一样对待。

于 2009-12-18T12:56:37.243 回答