1

这是代码:

jQuery(document).ready(function(){
    jQuery('.post_box').on('click', function(e) { 
        jQuery(this).find(".read_more").trigger("click");
    });  
});

当我单击 div post_box 时,它会触发一个位于 post_box 子 div 中的链接(弹出灰色框),该链接具有 read_more 类,现在它工作正常,但是当我关闭链接灰色框时出现问题,然后再次单击 div post_box它不起作用,我必须刷新页面才能单击它。

如果我把 on() 函数改为,在第一次点击时它会触发链接并被阻止,我认为它触发的链接不止一个,因为子 div 这是 HTML 代码

<div class="post_box" >
    <div class="post_box_top">
        <div class="post_box_center">
            <div class="post_box_content">

                <div class="post_date">

                </div>
                <div class="post_content">

              <?php   echo   $content_post = get_post(get_the_ID());?>

                </div>
                <div class="post_footer">
                    <a href="<?php the_permalink();?>" title="<?php the_title(); ?>" class="read_more"  rel="gb_pageset[search_sites]"  data-greybox-type="iframe">Read more</a>
               // this the link i should trigger when someone click on the <div class="post_box">   
               </div>
            </div>
        </div>
    </div>
</div>`

http://ec2-107-22-235-75.compute-1.amazonaws.com/请看这里,这个带有功能 one() 的网站,以防我在点击 div 时更改为 on()阻止http://haiders.imcserver.ro/telugu你可以在这里用 on() 看看第二种情况。

4

2 回答 2

2

我不会触发点击事件,而是创建一个偶数处理程序(函数)并运行该函数,例如:

$(document).ready(function(){
    var     
    readMoreHandler = function (ev) {
        el = $(this).find(".read_more")
        // open read more for the above element
    };


    $('.post_box').on('click', readMoreHandler);  
});

这样你就没有事件冒泡问题

于 2013-01-08T11:07:47.907 回答
0

尝试停止链接上的传播:

$(".read_more").click(function(e){
    e.stopPropagation();
});

$(document).ready(function(){
    $('.post_box').on('click', function(e) { 
        $(this).find(".read_more").click();
    }); 
});

这样,当事件从链接冒泡时,不会触发外部 div 的事件处理程序。

这是一个演示:http: //jsfiddle.net/7wFQz/

于 2013-01-10T12:18:29.157 回答