我正在附加一个带有图像的表格行,当您单击该图像时,它会触发一个事件。但是,您似乎无法动态添加“可点击”图像。
带有图像的所有先前行在单击时由其属性标识(它们加载了页面)。
我想要避免的是使用直播活动并制作单独的功能,我只是希望它像所有其他功能一样点击:(
所以问题是,如何添加一个事件,只是让现有的(已经被使用过的)函数在点击时识别动态添加图像的类......?
感谢您的帮助,但我对jquery和命名函数完全无能为力
最后,我创建了一个实时事件,并复制了原始函数中的代码。如果有人知道如何从两个进程中调用一个函数,那将是非常感激的。
答案 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
。