在jquery中切换链接
我正在尝试切换id为showmember的链接 我做了以下几件事在jquery中切换链接,jquery,Jquery,我正在尝试切换id为showmember的链接 我做了以下几件事 $("#table2").hide(); //this is for hiding table when page loads first time $("#showmember").toggle(function(){ $("#table2").show(); $("#showmember").html("Hide Member Details"); event.preve
$("#table2").hide(); //this is for hiding table when page loads first time
$("#showmember").toggle(function(){
$("#table2").show();
$("#showmember").html("Hide Member Details");
event.preventDefault();
},
function () {
$("#table2").hide();
$("#showmember").html("Show Member Details");
event.preventDefault();
});
<a id="showmember" href="" >Show Member</a>
$(“#表2”).hide()//这用于在页面首次加载时隐藏表
$(“#showmember”).toggle(函数(){
$(“#表2”).show();
$(“#showmember”).html(“隐藏成员详细信息”);
event.preventDefault();
},
函数(){
$(“#表2”).hide();
$(“#showmember”).html(“显示成员详细信息”);
event.preventDefault();
});
然而,它有时有效,有时无效。实际上,当我点击链接将我带到另一个页面时,它会在第一个页面加载时给我JS错误,说“预期对象”。当我点击browser back(浏览器返回)按钮并返回到原始页面时,一切正常。我使用的是ie6,您没有将事件对象传递到函数中
$("#table2").hide(); //this is for hiding table when page loads first time
$("#showmember").toggle( function(event){
$("#table2").show();
$("#showmember").html("Hide Member Details");
event.preventDefault();
},
function (event) {
$("#table2").hide();
$("#showmember").html("Show Member Details");
event.preventDefault();
});
<a id="showmember" href="" >Show Member</a>
$(“#表2”).hide()//这用于在页面首次加载时隐藏表
$(“#showmember”).toggle(函数(事件){
$(“#表2”).show();
$(“#showmember”).html(“隐藏成员详细信息”);
event.preventDefault();
},
功能(事件){
$(“#表2”).hide();
$(“#showmember”).html(“显示成员详细信息”);
event.preventDefault();
});
处理程序函数中缺少对参数事件的引用,不确定这是否是问题的原因,但在执行时可能有助于创建with not throw exception
$("#showmember").toggle(function(event){
$("#table2").show();
$("#showmember").html("Hide Member Details");
event.preventDefault();
},
function (event) {
$("#table2").hide();
$("#showmember").html("Show Member Details");
event.preventDefault();
});
您将需要像其他人所说的那样将事件作为参数传递,但我假设这可能与链接实际加载之前执行的代码有关?尝试将代码移动到$(document).ready()块: 您应该将与页面上的元素交互的代码(在页面加载时)放在这个函数中
$("#table2").hide(); //this is for hiding table when page loads first time
$("#showmember").toggle( function(event){
$("#table2").show();
$("#showmember").html("Hide Member Details");
event.preventDefault();
},
function (event) {
$("#table2").hide();
$("#showmember").html("Show Member Details");
event.preventDefault();
});
<a id="showmember" href="" >Show Member</a>
请原谅,如果你这样做只是忽略了那个细节:)
(另外,如果您不想在页面加载时执行此操作,请原谅,我只是再次阅读了问题,现在我不太确定…如果您从切换处理程序中删除
event.preventDefault()
行,它应该可以正常工作。我在IE6中测试了以下代码
$(function() {
$("#table2").hide(); //this is for hiding table when page loads first time
$("#showmember").toggle(
function() {
$("#table2").show();
$("#showmember").html("Hide Member Details");
},
function() {
$("#table2").hide();
$("#showmember").html("Show Member Details");
}
);
});
我不认为您需要防止在您的案例中发生默认操作,因为您没有为锚点的href属性指定值。如果您确实决定阻止默认操作,则需要像其他人提到的那样在切换处理程序中定义事件参数
$(function() {
$("#table2").hide(); //this is for hiding table when page loads first time
$("#showmember").toggle(
function(e) {
$("#table2").show();
$("#showmember").html("Hide Member Details");
e.preventDefault();
},
function(e) {
$("#table2").hide();
$("#showmember").html("Show Member Details");
e.preventDefault();
}
);
});
你能粘贴完整的脚本吗。你在文档中准备好这个连接脚本了吗?另外,如果你在ie中打开脚本调试,你可以使用脚本调试器或visual studio(express edition)调试这个问题,给或花4分钟是的:)哦,只是为了添加。。。我认为“return false;”与本例中的preventedfaul()的作用相同,因此我可能会使用它,而忽略事件对象。