簡體   English   中英

div 內的 Fancybox,在 onclick 事件后不起作用

[英]Fancybox inside a div, Does not work after onclick event

大家好,非常感謝您抽出寶貴的時間。 基本上我正在開發的是網頁上的一長串視頻。 我有一個 div 標簽,其中包含 10 個視頻鏈接。 這些鏈接打開一個 iframe html,其中嵌入了實際視頻。 所以父頁面沒有視頻,只有鏈接,錨點有 href="video.html",video.html 里面有視頻。 最初一切正常,但之后我還需要一個排序 function。 我做了我的排序 function 對視頻進行排序。 Onclick 視頻更改。 這樣做的方式是使用.innerHTML = "" 更改 div 內的內容。 內容確實發生了變化,我可以看到新的視頻鏈接和預覽圖像,但是當我單擊圖像時,href 鏈接會在新的 window 或父 window 中打開,不確定,但並不重要,因為 Fancybox 確實沒有打開,我嘗試了許多不同的東西,但仍然沒有結果。 所以我要問的問題是,當錨標簽動態更改時,為什么 Fancybox 不起作用。 請幫忙

好的,謝謝,我不確定如何使用.live 和.bind,但我會研究一下。 現在,這是我的代碼

<div id="mask">
</div>
<script type="text/javascript" language="javascript">
populate();
function populate()
{
var mask=document.getElementById('mask');
mask.innerHTML = '';
mask.innerHTML = allvideos[3] + allvideos[0];
}
//Then allvideos[3] for example would be like <a href="videos.html"/>
//So up to this part everything works. But now if i try and do
</script>
<div onclick="change();" >doesntmatter</div>
<script>
//And the change function
function change() {
var mask=document.getElementById('mask');
mask.innerHTML = '';
mask.innerHTML = allvideos[3] + allvideos[0];
} 
</script>   

所以基本相同的 function 但fancybox停止工作。 現在 Fancybox 代碼在一開始就被這樣調用:

$(document).ready(function() { $("a.videos").fancybox({ 

===== 已解決 =====

我不得不改變

$(document).ready(function() {$("a.videos").fancybox({

$(document).ready(function() {
_$('a.video').live('mouseenter', function(){_
$(this).fancybox({

使用live()

例子

而不是$('#id').click(function(){}); 利用

$('#id').live('click',function(){}); 

live 將應用於動態添加的對象

在你用 javascript 改變你的元素之后(例如,當你做了.innerHTML = "" )你必須再次調用你的初始代碼,包括對你的 fancybox 插件的調用,

您也可以嘗試使用.live()而不是.bind()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM