2012-11-08 254 views
-1

我使用jquery彈出窗口插件,它完美地工作在我的頁面上。從ajax打開jquery彈出窗口

但是,如果我從ajax調用此頁面,Jquery彈出窗口不起作用。

任何暗示?

非常感謝!

$(document).ready(

function(){ 
//open popup 
$(".pop").click(function(){ 

var url = $(this).attr('name'); 

$("#"+url).fadeIn(1000); 
positionPopup(this); 
}); 

//close popup 
$(".close").click(function(){ 

    var url = $(this).attr('name'); 


$("#"+url).fadeOut(500); 
}); 
}); 

也許document.ready didnot調用ajax? 我該如何調用函數?

+1

你的描述太籠統了。需要了解代碼的工作原理。 – Joseph

+1

哪一頁?哪個要求? –

+0

解釋更清楚 – Gadde

回答

1

您應該使用on方法而不是僅使用click。您的代碼將是:

$(document).ready(

function(){ 
//open popup 
$(document).on("click", ".pop", function(){ 

var url = $(this).attr('name'); 

$("#"+url).fadeIn(1000); 
positionPopup(this); 
}); 

//close popup 
$(document).on("click", ".close", function(){ 

    var url = $(this).attr('name'); 


$("#"+url).fadeOut(500); 
}); 
}); 

這裏的問題是關於事件冒泡。當你用ajax動態創建你的html元素時,事件不會附加到它們上面。 on方法解決了這個問題。

+0

謝謝你,但它沒有幫助。我也看到它不能識別由Ajax頁面調用的js函數。 – user1797901

+0

然後你應該提供更多的代碼:) –