触发div单击

时间:2016-09-28 04:43:11

标签: javascript jquery

我动态地应用了一个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();
});

5 个答案:

答案 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小提琴