我制作单页网站并使用jquery进行展示和隐藏表单切换。
我想要做的是在用户点击它将显示的第二个链接后,前两个按钮将无法使用,在用户点击第三个链接后,它将无法使用所有按钮。如果用户点击第一个链接,则会停用two
和three
按钮。
我的问题是在点击第二个链接后,所有按钮都无法与点击后的第三个链接相同。
当前输出:http://jsfiddle.net/GZSH6/92/
脚本:
$('#one').prop('disabled', false);
$('#two').prop('disabled', true);
$('#three').prop('disabled', true);
$('.one').click(function(){
$('#one').prop('disabled', false);
$('#two').prop('disabled', true);
$('#three').prop('disabled', true);
});
$('.two').click(function(){
$('#one').prop('disabled', false);
$('#two').prop('disabled', false);
$('#three').prop('disabled', true);
});
$('.three').click(function(){
$('#one').prop('disabled', false);
$('#two').prop('disabled', false);
$('#three').prop('disabled', false);
});
答案 0 :(得分:1)
首先,您不应该使用具有相同ID的HTML元素。那会引起问题。其次,我建议使用.attr()(attribute)方法而不是.prop()。
我使用这些更改修改了您的代码并且它正常工作,尽管您可能想要检查您的方法并且只有页面上每个按钮的一个副本,或者,如果您想为每个div重复它们,那么设置他们的属性是固定的,因为它们似乎永远不会改变。
我在下面的代码中包含了你的代码,但是我还将你的JSFiddle与更改分开。你可以在这里查看:http://jsfiddle.net/QTMR5/1/。
<a href="javascript:void(0)" class="show-page one" data-page="first">First</a>
<a href="javascript:void(0)" class="show-page two" data-page="second">Second</button>
<a href="javascript:void(0)" class="show-page three" data-page="third">Third</a>
<div class="container">
<div class="page first">
<div class="row">
<center>
First Page<br />
<button class="btnd btnd-default" id="firstone">Personal Info</button> <br />
<button class="btnd btnd-default" id="firsttwo">Educational Info</button> <br />
<button class="btnd btnd-default" id="firstthree">Employment Info</button>
</center>
</div>
</div>
<div class="page second hide">
<div class="row">
<center>
Second Page <br />
<button class="btnd btnd-default" id="secondone">Personal Info</button> <br />
<button class="btnd btnd-default" id="secondtwo">Educational Info</button> <br />
<button class="btnd btnd-default" id="secondthree">Employment Info</button>
</center>
</div>
</div>
<div class="page third hide">
<div class="row">
<center>
Third Page <br />
<button class="btnd btnd-default" id="thirdone">Personal Info</button> <br />
<button class="btnd btnd-default" id="thirdtwo">Educational Info</button> <br />
<button class="btnd btnd-default" id="thirdthree">Employment Info</button>
</center>
</div>
</div>
$(document).ready(function () {
$('#firstone').attr("disabled", false);
$('#firsttwo').attr('disabled', true);
$('#firstthree').attr('disabled', true);
$('.one').click(function(){
$('#firstone').attr('disabled', false);
$('#firsttwo').attr('disabled', true);
$('#firstthree').attr('disabled', true);
});
$('.two').click(function(){
$('#secondone').attr('disabled', false);
$('#secondtwo').attr('disabled', false);
$('#secondthree').attr('disabled', true);
});
$('.three').click(function(){
$('#thirdone').attr('disabled', false);
$('#thirdtwo').attr('disabled', false);
$('#thirdthree').attr('disabled', false);
});
var value = 0, progress;
function progressBar() {
progress = setInterval(function () {
var $bar = $('.bar');
if (value >= 100) {
clearInterval(progress);
$('.progress').removeClass('active');
$(".show-page[data-page=Profile]").trigger("click");
} else {
value += 10;
$bar.width(value * 7);
}
$bar.text(value + "%");
}, 800);
};
$(document).ready(function () {
if (typeof (Storage) !== "undefined" && localStorage.getItem('pageToShow')) {
var pageToShow = localStorage.getItem('pageToShow');
$('.page').addClass('hide');
$('.' + pageToShow).removeClass('hide');
};
$('.show-page').click(function () {
var pageToShow = $(this).data('page');
if (pageToShow == "progBar") {
value = 0;
$('.bar').width(0);
$('.progress').addClass('active');
progressBar();
} else {
clearInterval(progress);
};
$('.page').addClass('hide');
$('.' + pageToShow).removeClass('hide');
if (typeof (Storage) !== "undefined") {
localStorage.setItem('pageToShow', pageToShow);
};
});
});
});