我动态地应用了一个div。
$('#parent').append('<div id="sub"></div>');
如果点击图像(#go
),如何在此DIV上触发点击事件?
HTML
<img id="go" src="img.png" />
<div id="parent"></div>
JS
$('#go').on('click',function(){
//console.log("test1");
$("#sub").click();
});
答案 0 :(得分:2)
这应该有效...添加了一个处理程序来验证...
- (CGRect)getRectFromImage:(UIImage*)image
{
// First get the image into your data buffer
CGImageRef imageRef = [image CGImage];
NSUInteger width = CGImageGetWidth(imageRef);
NSUInteger height = CGImageGetHeight(imageRef);
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
unsigned char *rawData = malloc(height * width * 4);
NSUInteger bytesPerPixel = 4;
NSUInteger bytesPerRow = bytesPerPixel * width;
NSUInteger bitsPerComponent = 8;
CGContextRef context = CGBitmapContextCreate(rawData, width, height,
bitsPerComponent, bytesPerRow, colorSpace,
kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);
CGColorSpaceRelease(colorSpace);
CGContextDrawImage(context, CGRectMake(0, 0, width, height), imageRef);
CGContextRelease(context);
int x = 0;
int y = 0;
int xPos = 0;
int yPos = 0;
int xMax = 0;
int yMax = 0;
for (x = 0; x < width; x++) {
for (y = 0; y < height; y++) {
unsigned char alphaByte = rawData[(y*bytesPerRow)+(x*bytesPerPixel)+3];
if (alphaByte > 0) {
if (xPos == 0) {
xPos = x;
}
if (yPos == 0) {
yPos = y;
}
if (x < xPos) {
xPos = x;
}
if (y < yPos) {
yPos = y;
}
if (x > xMax) {
xMax = x;
}
if (y > yMax) {
yMax = y;
}
}
}
}
NSLog(@"(%i,%i,%i,%i)", xPos, yPos,xMax-xPos,yMax-yPos);
free(rawData);
return CGRectMake(xPos, yPos, xMax-xPos, yMax-yPos);
}
$('#parent').append('<div id="sub"></div>')
$('#go').on('click', function() {
$("#sub").click();
})
$('body').on('click', '#sub', function(e) {
console.log('sub clicked')
})
注意:点击<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<img id="go" src="https://i.stack.imgur.com/wPE0C.jpg?s=48&g=1" />
<div id="parent"></div>
也会触发事件
答案 1 :(得分:0)
您可以使用触发器方法#sub
trigger()方法触发指定事件以及所选元素的事件(如表单提交)的默认行为。
答案 2 :(得分:0)
使用Run
trigger()
,确保$('#go').on('click',function(){
$('#parent').find("#sub").trigger('click');
});
的点击事件已委派
#sub
答案 3 :(得分:0)
首先使用event.preventDefault()然后触发click:
$('#go').on('click',function(){
event.preventDefault();
$("#sub").click();
});
答案 4 :(得分:0)
当然,您只需将点击功能绑定到#sub
div
查看this小提琴