我有example。
当我点击时,通过Ajax加载动态内容。在加载的页面中有一个链接,可以关闭div。它工作正常,但当div关闭时(使用hide()),点击链接不会重新打开加载的页面。
为什么呢?如何创建一个显示/隐藏加载了Ajax的div的按钮?
致电页面
<script type="text/javascript">
function getAjax(divdett,pageload) {
$(function(){$(divdett).load(pageload);});}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>click</title>
</head>
<body>
<a href="javascript:getAjax('#siteloader','jquery_divajax.htm');">click</a>
<div id="siteloader"></div>
</body>
包含的页面:
<script type="text/javascript">
function delAjax(divdett) {
$(divdett).hide();
}
</script>
OK!
<a id="#chiudi" href="#" onclick="delAjax('#siteloader');">chiudi</a>
答案 0 :(得分:1)
在“关闭”按钮中,您拨打hide()
。
将您的getAjax
功能更改为:
function getAjax(divdett,pageload) {
$(function(){$(divdett).load(pageload).show();});}
我刚刚添加.show()
以确保div可见,即使它之前已被隐藏。
请注意,我尊重原始构造,但这太复杂了:当你可以简单地执行时,无需调用$(function
function getAjax(divdett,pageload) {
$(divdett).load(pageload).show();}
如果您只想拥有一个按钮,则可以删除第二个文件中的一个并将getAjax函数更改为
function getAjax(divdett,pageload) {
var div = $(divdett);
if (div.is(':visible')) div.hide();
else div.load(pageload).show();
}
答案 1 :(得分:0)
我会使用一种不引人注意的方法,将html与javascript(jQuery)代码分开,并且非常好地指出@dystroy,只需在执行ajax请求之前显示div以确保它是可见的:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>click</title>
<script type="text/javascript">
$(function() {
$('#clickme').on('click', function(event) {
$('#siteloader').show().load('jquery_divajax.htm');
event.preventDefault();
});
$('#siteloader').on('click', '#chiudi', function(event) {
$('#siteloader').hide();
event.preventDefault();
});
});
</script>
</head>
<body>
<a id="clickme" href="">click</a>
<div id="siteloader"></div>
</body>
答案 2 :(得分:0)
好吧,我的回答可以帮到你...... 给你这个场景......
你可以使用if else响应ajax请求
$.ajax(
{
url:"ChkLogin.php",
type:"POST",
dataType: 'json',
data: {usernm: unm, passwrd: pass },
success:function(myoutput)
{
$(":hidden").val(myoutput.srno);
if(myoutput.flag=="1")
{
window.location="chat.php";
}
else
{
$("#msg").html("Invalid Login");
}
}
});
是1中的响应然后执行此操作 其他 这样做
...等
if(myoutput.flag=="1")
{
$("#div").hide(4000);
}
else
{
$("#div").show(4000);
}
这里有4000(ms(毫秒)隐藏或显示DIV] 希望这会对你有所帮助
答案 3 :(得分:0)
我认为它不起作用,因为已经加载了HTML DOM。对于动态绑定,您需要使用函数.bind()
或.live()
(Documentation for bind())。
例如:
$( "#foo" ).bind( "click", function() {
$( this ).hide(); // or show();
});