event.preventDefault() - 不使用加载的<a></a>

时间:2013-10-25 11:47:30

标签: jquery preventdefault

我的代码:

 $('.menu a').on('click', function(event){
    event.preventDefault();
    if($(this).parent().children('ul').is('.deep1')){
        var result = $(this).parent().children('ul').html();
        $('.dpp1').html('<ul class="menu" style="display: none">'+result+'</ul>');
        $('.dpp1').children('.menu').stop().fadeIn()
    }else if($(this).parent().children('ul').is('.deep2')){
        var result = $(this).parent().children('ul').html();
        $('.dpp2').html('<ul class="menu" style="display: none">'+result+'</ul>');
        $('.dpp2').children('.menu').stop().fadeIn()
    }else if($(this).parent().children('ul').is('.deep3')){
        var result = $(this).parent().children('ul').html();
        $('.dpp3').html('<ul class="menu" style="display: none">'+result+'</ul>');
        $('.dpp3').children('.menu').stop().fadeIn() 
    }
 });

我的问题是如何让它在创建的元素中运行preventDefault()?

2 个答案:

答案 0 :(得分:3)

由于锚是动态添加的,因此您需要使用event delegation来注册事件处理程序

$('.menu').on('click', 'a', function (event) {
    event.preventDefault();
    //........
});

答案 1 :(得分:1)

试试这个,

$(document).on('click', '.menu a', function (event) {
    event.preventDefault();
    // your code
});