我遇到了以下问题:我生成了一个带有"jQuery-Load“链接的div。div中的这些链接应该用不同的参数重新加载同一个div。我找到了一个可行的解决方案,它生成这些链接,这些链接是可点击的,并且......trigger所选事件一次。因此,在生成的div中单击相同的链接,在它重新生成后,将不再起作用。尝试了很多东西..。
现在看起来是这样的:
<a href="?#id123c" id="l0" onclick="$('#aaa0').load('getdetails.php?fNumber=36&env=fun&id=10,function(data){ $('#aaa0').click(function(e) { e.preventDefault(); }); });"> click </a>
<div id="aaa0"> I'm the div - level1! </div>div被填满了--很漂亮。
它现在包含这样的内容:(实际上它是生成的,这就是为什么要写time,它是time();在php中生成。作为一个变化的参数
[...]<a href='?#intern0[time]"' id='li0' onclick=\"$('#aaa0').load('getdetails.php?fNumber=36&env=fun&time=[time]');\"> Link inside Updated Div </a>[...]当我单击div中的链接时,它可以工作。当我再次点击它时,它不会...我想生成一个很好的'click在数据内部更深入‘的东西,这将是让这个东西工作起来很神奇的事情,也是为什么在"onclick“事件中一切都必须尽可能好的原因:|
对不起顺便说一句。对于有点令人困惑的帖子风格,这是一个令人困惑的话题,我不会说母语:)
感谢您提前提供的帮助或提示,
哈里
发布于 2011-10-07 01:35:04
也许你错过了bind和live之间的概念。在bind中,jQuery扫描文档并将函数直接附加到元素。在live中,jQuery将函数以及事件和元素作为参数附加到文档。一旦事件冒泡,jQuery就会检查事件和元素,如果匹配,则执行一个函数。
在第一次运行之后,dom发生了变化,它将使用live工作。
发布于 2011-10-07 01:13:46
像这样的东西应该是有效的:
<a href="?#id123c" id="l0"> click </a>
<div id="aaa0"> I'm the div - level1! </div>
<script>
$('a').live('click', function (e) {
e.preventDefault();
var id = this.id;
$(this).next('div').load('getdetails.php?fNumber=36&env=fun&id=' + id);
});
</script>基本上,所做的是一个通用规则,它为所有标签提供相同的行为。(加载下一个div内容)。" .live()“用于加载标记(请查看.live()的jquery文档,或一般的事件委托)。
我对preventDefault的事情不太确定。你可能想要使用除标签之外的其他东西作为链接。
发布于 2011-10-07 16:25:35
<a href="?#123c" id="l0" onclick="$('#aaa0').load('getdetails.php?fNumber=36&env=fun&id=0',function(data){ $('#aaa0').click(function(e) { e.preventDefault(); }); });"> click </a>made the day :)我不知道确切的原因,但可能是preventDefault为我制作了绑定和活动的东西。它工作得很好,所以...
谢谢你的提示!:D
https://stackoverflow.com/questions/7677593
复制相似问题