Jquery 如何让一个链接通过ajax获取数据,然后进行更改以允许隐藏数据?
我正在使用asp mvc 2,我有一个页面,上面有一些数据,我有一个链接,它将执行一个ajax请求,以获取一些数据并将其发布到页面上的一个div 一旦我有了数据,我希望某些东西变得可见,我可以单击它来切换包含数据的div的可见性,这样用户就可以显示/隐藏这些额外的信息,但我不希望原始链接再可见 我不介意原始链接是否更改了它的功能,即在加载数据之前,它会显示“显示数据”,然后一旦加载,它会更改为“隐藏数据”,如果隐藏,它会再次更改为“显示数据”,如果再次单击,它只会再次显示div(尽管从ajax调用重新加载数据不会是世界末日)Jquery 如何让一个链接通过ajax获取数据,然后进行更改以允许隐藏数据?,jquery,ajax,asp.net-mvc-2,Jquery,Ajax,Asp.net Mvc 2,我正在使用asp mvc 2,我有一个页面,上面有一些数据,我有一个链接,它将执行一个ajax请求,以获取一些数据并将其发布到页面上的一个div 一旦我有了数据,我希望某些东西变得可见,我可以单击它来切换包含数据的div的可见性,这样用户就可以显示/隐藏这些额外的信息,但我不希望原始链接再可见 我不介意原始链接是否更改了它的功能,即在加载数据之前,它会显示“显示数据”,然后一旦加载,它会更改为“隐藏数据”,如果隐藏,它会再次更改为“显示数据”,如果再次单击,它只会再次显示div(尽管从ajax调
我的web fu和jQuery fu不够强大。我如何才能得到我想要的?我的头撞在这堵墙上,一天左右都没有一个真正令人满意的解决方案,我觉得我在理解事物如何工作的过程中一定遗漏了一些东西。以下几点应该是可行的:
<a href="#" id="myToggler">Show</a>
<div id="myDiv">
</div>
<script type="text/javascript">
$('#myToggler').click(function() {
var link = $(this);
var content = $('#myDiv');
if(!content.data('isLoaded')) {
content.load('path/to/something', function() {
content.data('isLoaded', true);
});
}
content.toggle(function() {
if(content.is(':visible')) {
link.text('Hide');
} else {
link.text('Show');
}
});
return false;
});
</script>
$('#myToggler')。单击(函数(){
var-link=$(这个);
var内容=$(“#myDiv”);
如果(!content.data('isLoaded')){
load('path/to/something',function()){
content.data('isLoaded',true);
});
}
content.toggle(函数(){
if(content.is(':visible')){
link.text('Hide');
}否则{
link.text('Show');
}
});
返回false;
});
更新
您指出,您将在单个页面上有许多带有切换链接的内容区域,因此对HTML和上面的脚本进行一次小的更改就可以做到这一点:
<div class="content-wrapper">
<a href="#" class="toggler">Show</a>
<div class="content">
</div>
</div>
<script type="text/javascript">
$('.toggler').click(function() {
var link = $(this);
var parent = link.parent('.content-wrapper');
var content = parent.find('.content');
if(!content.data('isLoaded')) {
content.load('path/to/something', function() {
content.data('isLoaded', true);
});
}
content.toggle(function() {
if(content.is(':visible')) {
link.text('Hide');
} else {
link.text('Show');
}
});
return false;
});
</script>
$('.toggler')。单击(函数(){
var-link=$(这个);
var parent=link.parent('.content wrapper');
var content=parent.find('.content');
如果(!content.data('isLoaded')){
load('path/to/something',function()){
content.data('isLoaded',true);
});
}
content.toggle(函数(){
if(content.is(':visible')){
link.text('Hide');
}否则{
link.text('Show');
}
});
返回false;
});
按照这些思路应该可以做到:
<a href="#" id="myToggler">Show</a>
<div id="myDiv">
</div>
<script type="text/javascript">
$('#myToggler').click(function() {
var link = $(this);
var content = $('#myDiv');
if(!content.data('isLoaded')) {
content.load('path/to/something', function() {
content.data('isLoaded', true);
});
}
content.toggle(function() {
if(content.is(':visible')) {
link.text('Hide');
} else {
link.text('Show');
}
});
return false;
});
</script>
$('#myToggler')。单击(函数(){
var-link=$(这个);
var内容=$(“#myDiv”);
如果(!content.data('isLoaded')){
load('path/to/something',function()){
content.data('isLoaded',true);
});
}
content.toggle(函数(){
if(content.is(':visible')){
link.text('Hide');
}否则{
link.text('Show');
}
});
返回false;
});
更新
您指出,您将在单个页面上有许多带有切换链接的内容区域,因此对HTML和上面的脚本进行一次小的更改就可以做到这一点:
<div class="content-wrapper">
<a href="#" class="toggler">Show</a>
<div class="content">
</div>
</div>
<script type="text/javascript">
$('.toggler').click(function() {
var link = $(this);
var parent = link.parent('.content-wrapper');
var content = parent.find('.content');
if(!content.data('isLoaded')) {
content.load('path/to/something', function() {
content.data('isLoaded', true);
});
}
content.toggle(function() {
if(content.is(':visible')) {
link.text('Hide');
} else {
link.text('Show');
}
});
return false;
});
</script>
$('.toggler')。单击(函数(){
var-link=$(这个);
var parent=link.parent('.content wrapper');
var content=parent.find('.content');
如果(!content.data('isLoaded')){
load('path/to/something',function()){
content.data('isLoaded',true);
});
}
content.toggle(函数(){
if(content.is(':visible')){
link.text('Hide');
}否则{
link.text('Show');
}
});
返回false;
});
谢谢,我会尝试调整。我可能应该说我在页面上有几个这样的元素,所以没有固定的ID,因为ID是从视图中的数据生成的。但是,如果有帮助的话,它们都有相同的类。我可以修改函数以使用动态ID吗?@SamHolder请查看我答案的更新。如果如果您还有任何问题,我很乐意回答。非常感谢。这几乎是完美的。我只需要确保在加载数据时,内容是隐藏的,以便第一次切换可以显示出来。谢谢,我从中学到了很多。@SamHolder很高兴我能帮上忙!谢谢,我会尝试调整此内容。我应该说我有几个页面上的这些元素中有l个没有固定ID,因为ID是从视图中的数据生成的。但是,如果有帮助的话,它们都有相同的类。我可以修改函数以使用动态ID吗?@SamHolder请查看我答案的更新。如果您还有任何问题,我很乐意回答。非常感谢这几乎是p完美。我只需要确保加载数据时内容是隐藏的,这样第一次切换就会显示出来。谢谢,我从中学到了很多。@SamHolder很高兴我能帮上忙!