0

我不知道如何在这里提出我的问题,我将在这里复制我的代码,更好地解释,我有一个带有“a”类的 ap 标签

<p class="a">Test</p>

我在这里使用的 jquery 是——

jQuery(document).ready(function($){


    $('.a').click(function(){
   (jQuery('<a href="home" class="b">Super Test</a>')).insertAfter('.a');

 return false;
 });



$('.b').on('click', function(){
    alert('hai');
    return false;
});
});

好的,当我单击“a”类的 p 标签时,它成功插入了一个“b”类的链接,我想要的是如果我单击“b”类的链接,我想做点什么。我不知道这是否可能,或者我在问一个愚蠢的问题,有什么可能的话,请帮助我解决这个问题,或者如果有任何其他方法可以实现这一点,请分享。谢谢你。因为实际上我想在我的项目中克服这种类型的情况,实际上是通过 ajax 获得一些链接,然后如果客户点击这些链接(通过 ajax 创建)想要使用 ajax 本身显示一些东西。

4

5 回答 5

0
$(document).on('click', '.b', function(e){
    e.preventDefault();
    alert('hai');
    return false;
});

jQuery API .on()

于 2013-06-20T11:56:05.777 回答
0

You'd have to delegate .b using .on():

$(document).on('click', '.b', function() {
  // your code
});

Replace document with an element which is closest to where b will reside, and exists on the page when the DOM is loaded. This will prevent the click event propagating right the way up to the document

于 2013-06-20T11:53:46.423 回答
0

Try to use .append() and you need to add prevent default for the anchor tag action like

$('.a').on('click',function(e){
   e.preventDefault();
   jQuery('.a').append('<a href="home" class="b">Super Test</a>');      
});

and in delagate method you can give like

$(document).on('click','.a',function(){
   e.preventDefault();
   jQuery('.a').append('<a href="home" class="b">Super Test</a>');      
});
于 2013-06-20T11:54:00.627 回答
0

It is possible and your code is working.
Just add preventDefault inside click method

于 2013-06-20T11:54:16.300 回答
0

您的代码正在运行,您必须添加e.preventDefault()以防止发生默认事件。如果您仍然有同样的问题,如果您使用的是旧版本的 jquery,请live()使用on().

.live() 已被弃用,并且 .on() 直到 1.7 版才引入。

编辑:
如果您使用的是新版本的 jQuery,只需使用类似的东西:

    $('.a').click(function(e){
        e.preventDefault();
        $('.a').after(' <a href="home" class="b">Super Test</a> ');
    });


$(document).on('click', '.b', function(e) {
            e.preventDefault();
            alert('hai');
});

工作示例:http: //jsfiddle.net/ouadie/Hw9Qa/

于 2013-06-20T11:55:32.760 回答