2012-11-08 46 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

然后你应该提供更多的代码:) –