当我单击添加按钮时,它被更改为删除按钮。但我无法再次将删除按钮更改为添加按钮,当我单击删除时。
<head>
<script type="text/javascript" src="assets/js/jquery-2.0.3.min.js"> </script>
<script type="text/javascript" >
$(document).ready(function()
{
$(".add").click(function(){
var element = $(this);
var I = element.attr("id");
var info = 'id=' + I;
$("#" + I).attr("class", "remove");
$(".remove").text("Remove");
return false;
});
});
</script>
<script type="text/javascript" >
$(document).ready(function()
{
$(".remove").click(function(){
var element = this.id;
var I = element.attr("id");
var info = 'id=' + I;
$("#" + I).attr("class", "add");
$(".add").text("add");
return false;
});
});
</script>
<a class="add" id="1" href="#"> Add </a>
使用jQuery修改DOM元素时,在$(document).ready()中加载的任何内容都无法识别更改。您可以做的是将每个步骤封装在一个函数中,在document.ready上调用这些步骤,然后在另一个函数的末尾再次调用每个步骤:
<script type="text/javascript" >
$(document).ready(function()
{
addFunction();
removeFunction();
});
function addFunction(){
$(".add").click(function(){
var element = $(this);
var I = element.attr("id");
var info = 'id=' + I;
$("#result").text(I);
$("#" + I).attr("class", "remove");
$(".remove").text("Remove");
removeFunction();
return false;
});
}
function removeFunction(){
$(".remove").click(function(){
var element = $(this);
var I = element.attr("id");
var info = 'id=' + I;
$("#result").text(I);
$("#" + I).attr("class", "add");
$(".add").text("add");
addFunction();
return false;
});
}
</script>
document.ready中列出了这两个函数,因此不能将事件处理程序附加到.remove类,因为它还不存在。我建议使用委托事件:
$( ".LocationOfYourButtonInTheDom" ).on( "click", "ThingBeingClicked", function() {
//code here
});
编辑:ThingBeingClicked将是触发事件的DOM对象类型,在您的情况下,这将是一个"a"标记
您可以从jquery"on"文档中阅读更多关于事件和委派的信息。