我不知道如何在这里提出我的问题,我将在这里复制我的代码,更好的解释完美,我有一个带有'a'类的p标签
<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本身显示某些内容。
答案 0 :(得分:0)
您必须使用.b
委派.on()
:
$(document).on('click', '.b', function() {
// your code
});
将文档替换为最接近b
所在位置的元素,并在加载DOM时存在于页面上。这样可以防止点击事件直接传播到document
答案 1 :(得分:0)
尝试使用.append()
,您需要为锚标记操作添加防止默认值,例如
$('.a').on('click',function(e){
e.preventDefault();
jQuery('.a').append('<a href="home" class="b">Super Test</a>');
});
并且在delagate方法中你可以给出类似的
$(document).on('click','.a',function(){
e.preventDefault();
jQuery('.a').append('<a href="home" class="b">Super Test</a>');
});
答案 2 :(得分:0)
这是可能的,您的代码正在运作 只需在点击方法
中添加preventDefault
即可
答案 3 :(得分:0)
您的代码正常运行,您必须添加e.preventDefault()
以防止发生默认事件。如果你仍然有同样的问题,如果你使用旧版本的jquery
使用live()
代替on()
。
.live()已弃用,并且在版本1.7之前未引入.on()。
修改强>
如果你正在使用新版本的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');
});
答案 4 :(得分:0)
$(document).on('click', '.b', function(e){
e.preventDefault();
alert('hai');
return false;
});