Jquery添加图像,没有点击事件

时间:2009-12-18 10:57:11

标签: jquery live

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

带有图像的所有先前行在单击时由其属性标识(它们加载了页面)。

我想要避免的是使用直播活动并制作单独的功能,我只是希望它像所有其他功能一样点击:(

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


感谢您的帮助,但我对jquery和命名函数完全无能为力

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

2 个答案:

答案 0 :(得分:1)

假设您在添加新图像时想要应用命名函数:

function doSomeMagicThing() { //handle image }

您可以打包img html,例如:

//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!

答案 1 :(得分:0)

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

function myFunc(){

}

在您的jQuery代码中,您可以使用.click(myFunc)。函数myFunc作为'回调'传递。在您的旧代码中,您已经以相同的方式将匿名函数作为回调传递,假设您执行了.click(function(){ })之类的操作。

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

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

var myFunc = function(){

}

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