gpt4 book ai didi

jQuery 委派与 Facebox

转载 作者:行者123 更新时间:2023-12-01 04:29:24 24 4
gpt4 key购买 nike

嗨,我不会共享代码。问题出在这段代码中,请看一下。 (问题:我想每次从ajax发帖时都打开facebox,facebox无法正常工作。我想问如何在该事件中使用jQuery委托(delegate)事件?)

<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="facebox/facebox.css" type="text/css" />
</head>
<body>

<ul id="items">
<li> <a href='#'> Clone Object </a> </li>
<li> <a href='#test' rel='facebox'> Click to open facebox </a> </li>
</ul>

<div id="test" style="display:none;">this is my test div</div>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script type="text/javascript" src="facebox/facebox.js"></script>

<script type="text/javascript">

jQuery('a[rel*=facebox]').facebox();

$("#items li").delegate('a', 'click', function(){
$(this).parent().append('<li><a href="#test" rel="facebox"> New Element ( problem: it should open facebox) </a></li>');
return false;
});

</script>

</bdoy>
</html>

最佳答案

有一些事情,首先更改为使用 .live() ,通过切换:

jQuery('a[rel*=facebox]').facebox();

为此:

jQuery('a[rel*=facebox]').live('click', function(e) {
$.facebox({ div: this.hash });
e.preventDefault();
});

或者 .delegate() 版本:

$('#items').delegate('a[rel*=facebox]', 'click', function(e) {
$.facebox({ div: this.hash });
e.preventDefault();
});
<小时/>

然后你的 .parent() 调用正在附加 <li><li> ,您应该替换:

$(this).parent()

.cloest() 所以它上升到 <ul>并将其作为子项附加到那里,如下所示:

$(this).closest("ul")

You can test out the updated version with the above changes (without images) here .

关于jQuery 委派与 Facebox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3797599/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com