更改字体很棒的图标onclick功能
Changing font awesome icon onclick function
我正在尝试在用户单击按钮时将 .fa-eye 替换为 fa-eye-slash。我究竟做错了什么?没用。
HTML代码:
<button onclick="arata_ascunde(this);" style="align:right;font-size:13px"
class="btn btn-info " id="show_hide_bt" style="background-color:#00b0ff;"><i
class="fa fa-eye"></i> Show</button>
Javascript代码:
function arata_ascunde(button) {
var x = document.getElementById('showhide');
var change = document.getElementById("show_hide_bt");
if (x.style.display === 'none') {
x.style.display = 'block';
} else {
x.style.display = 'none';
}
if (change.innerHTML == ' Show')
{
change.innerHTML = ' Hide';
$(button).find('i').toggleClass('fa-eye').toggleClass('fa-eye-slash');
}
else {
change.innerHTML = ' Show';
$(button).find('i').toggleClass('fa-eye-slash').toggleClass('fa-eye');
}
}
自从您插入 Jquery。您可以通过 Jquery 轻松完成此操作。
<button style="align:right;font-size:13px" class="btn btn-info" id="show_hide_bt" style="background-color:#00b0ff;"><i
class="fa fa-eye"></i> Show</button>
现在 Jquery 代码是
$("#show_hide_bt").click(function(event) {
$(this).find('i').toggleClass('fa-eye-slash');
});
如果你想删除 fa-eye class 那么你可以链接另一个 toggleClass 或再次添加它
$(this).find('i').toggleClass('fa-eye');
或者单行添加。如果这没有帮助,请发表评论
$(this).find('i').toggleClass('fa-eye-slash').toggleClass('fa-eye');
function arata_ascunde(button) {
var x = $('#showhide');
$(button).find('i').remove();
if ($(button).text().trim() == 'Show') {
$(button).html($('<i/>',{class:'fa fa-eye-slash'})).append(' Hide');
x.fadeIn();
}
else {
$(button).html($('<i/>',{class:'fa fa-eye'})).append(' Show');
x.fadeOut();
}
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button onclick="arata_ascunde(this);" style="align:right;font-size:13px"
class="btn btn-info " id="show_hide_bt" style="background-color:#00b0ff;">
<i class="fa fa-eye"></i> Show
</button>
<div id="showhide" style="background-color:red;width:100px;height:100px;margin:10px;display:none;"></div>
document.querySelector('button').addEventListener('click', function() {
const icon = this.querySelector('i');
const text = this.querySelector('span');
if (icon.classList.contains('fa-eye')) {
icon.classList.remove('fa-eye');
icon.classList.add('fa-eye-slash');
text.innerHTML = 'Hide';
} else {
icon.classList.remove('fa-eye-slash');
icon.classList.add('fa-eye');
text.innerHTML = 'Show';
}
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/skeleton/2.0.4/skeleton.min.css" rel="stylesheet" />
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" />
<button><i class="fa fa-eye"></i> <span>Show</span></button>
我认为您可以通过简化 HTML 和 JQuery 来获得您想要的结果。
试试这个片段:
$(document).ready(() => {
const button = $(".btn");
button.click(() => {
if (button.text() == " Show") {
button.html('<i class="fa fa-eye-slash"></i> Hide');
} else {
button.html('<i class="fa fa-eye"></i> Show');
}
});
});
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class='btn btn-default'><i class="fa fa-eye"></i> Show</button>
您可以像这样切换 class:$('i').toggleClass("fa-eye-slash fa-eye");
,但由于您也想更改文本,我建议使用上面的解决方案。
function myFunction(x) {
x.classList.toggle("fa-thumbs-down");
}
.fa {
font-size: 50px;
cursor: pointer;
user-select: none;
}
.fa:hover {
color: darkblue;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
<p>Click on the icon to toggle between thumbs-up and thumbs-down (like/dislike):</p>
<i onclick="myFunction(this)" class="fa fa-thumbs-up"></i>
我正在尝试在用户单击按钮时将 .fa-eye 替换为 fa-eye-slash。我究竟做错了什么?没用。
HTML代码:
<button onclick="arata_ascunde(this);" style="align:right;font-size:13px"
class="btn btn-info " id="show_hide_bt" style="background-color:#00b0ff;"><i
class="fa fa-eye"></i> Show</button>
Javascript代码:
function arata_ascunde(button) {
var x = document.getElementById('showhide');
var change = document.getElementById("show_hide_bt");
if (x.style.display === 'none') {
x.style.display = 'block';
} else {
x.style.display = 'none';
}
if (change.innerHTML == ' Show')
{
change.innerHTML = ' Hide';
$(button).find('i').toggleClass('fa-eye').toggleClass('fa-eye-slash');
}
else {
change.innerHTML = ' Show';
$(button).find('i').toggleClass('fa-eye-slash').toggleClass('fa-eye');
}
}
自从您插入 Jquery。您可以通过 Jquery 轻松完成此操作。
<button style="align:right;font-size:13px" class="btn btn-info" id="show_hide_bt" style="background-color:#00b0ff;"><i
class="fa fa-eye"></i> Show</button>
现在 Jquery 代码是
$("#show_hide_bt").click(function(event) {
$(this).find('i').toggleClass('fa-eye-slash');
});
如果你想删除 fa-eye class 那么你可以链接另一个 toggleClass 或再次添加它
$(this).find('i').toggleClass('fa-eye');
或者单行添加。如果这没有帮助,请发表评论
$(this).find('i').toggleClass('fa-eye-slash').toggleClass('fa-eye');
function arata_ascunde(button) {
var x = $('#showhide');
$(button).find('i').remove();
if ($(button).text().trim() == 'Show') {
$(button).html($('<i/>',{class:'fa fa-eye-slash'})).append(' Hide');
x.fadeIn();
}
else {
$(button).html($('<i/>',{class:'fa fa-eye'})).append(' Show');
x.fadeOut();
}
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button onclick="arata_ascunde(this);" style="align:right;font-size:13px"
class="btn btn-info " id="show_hide_bt" style="background-color:#00b0ff;">
<i class="fa fa-eye"></i> Show
</button>
<div id="showhide" style="background-color:red;width:100px;height:100px;margin:10px;display:none;"></div>
document.querySelector('button').addEventListener('click', function() {
const icon = this.querySelector('i');
const text = this.querySelector('span');
if (icon.classList.contains('fa-eye')) {
icon.classList.remove('fa-eye');
icon.classList.add('fa-eye-slash');
text.innerHTML = 'Hide';
} else {
icon.classList.remove('fa-eye-slash');
icon.classList.add('fa-eye');
text.innerHTML = 'Show';
}
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/skeleton/2.0.4/skeleton.min.css" rel="stylesheet" />
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" />
<button><i class="fa fa-eye"></i> <span>Show</span></button>
我认为您可以通过简化 HTML 和 JQuery 来获得您想要的结果。
试试这个片段:
$(document).ready(() => {
const button = $(".btn");
button.click(() => {
if (button.text() == " Show") {
button.html('<i class="fa fa-eye-slash"></i> Hide');
} else {
button.html('<i class="fa fa-eye"></i> Show');
}
});
});
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class='btn btn-default'><i class="fa fa-eye"></i> Show</button>
您可以像这样切换 class:$('i').toggleClass("fa-eye-slash fa-eye");
,但由于您也想更改文本,我建议使用上面的解决方案。
function myFunction(x) {
x.classList.toggle("fa-thumbs-down");
}
.fa {
font-size: 50px;
cursor: pointer;
user-select: none;
}
.fa:hover {
color: darkblue;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
<p>Click on the icon to toggle between thumbs-up and thumbs-down (like/dislike):</p>
<i onclick="myFunction(this)" class="fa fa-thumbs-up"></i>