簡體   English   中英

jQuery按鈕更改不起作用

[英]jQuery Button changes not working

我正在嘗試為按鈕提供新的內容(如果已單擊)。 我還添加了新類。 第一次單擊就可以很好地完成這項工作,但是由於某些原因,第二次單擊后,innerhtml不會更改。HTML:

<button class="btn btn-warning btn-invisible"><i class="fa fa-eye-slash"></i></button>

jQuery的:

$('.btn-invisible').click(function() {
  $(this).removeClass('btn-invisible');
  $(this).addClass('btn-visible');
  $(this).html('<i class="fa fa-eye"></i>');
});            

$('.btn-visible').click(function() {
  $(this).removeClass('btn-visible');
  $(this).addClass('btn-invisible');
  $(this).html('<i class="fa fa-eye-slash"></i>');
});

我准備好了這個小提琴: https : //jsfiddle.net/dthee9w6/7/

如果有人可以幫助,我會很樂意。

您應該使用' on '而不是' click ',以便可以使用動態添加的元素。

$('body').on('click','.btn-invisible',function() {

  $(this).removeClass('btn-invisible');

  $(this).addClass('btn-visible');
  $(this).html('<i class="fa fa-eye"></i>');
});            

$('body').on('click','.btn-visible',function() {


  $(this).removeClass('btn-visible');

  $(this).addClass('btn-invisible');
  $(this).html('<i class="fa fa-eye-slash"></i>');
});

希望能幫助到你。

將您的代碼包裝在$(function(){})中,即$(document).ready(function(){});,除此之外,一切都很好

無需每次單擊都更新html,您所需要做的就是添加和刪除必要的類。

對於第一次單擊,您要刪除不可見的類,如果下次單擊該按鈕,它將再次嘗試刪除不存在的不可見的類,這會引發錯誤,您應該使用toggleClass

  $(function() {
  $('.btn-invisible').click(function() {

    $(this).toggleClass('btn-invisible');

    if (!$(this).hasClass('btn-visible')) {

      $(this).addClass('btn-visible');
      $(this).find('.fa').removeClass('fa-eye-slash').addClass('fa-eye');
    }
  });

  $('.btn-visible').click(function() {

    $(this).toggleClass('btn-visible');

    if (!$(this).hasClass('btn-invisible')) {

      $(this).addClass('btn-invisible');
      $(this).find('.fa').removeClass('fa-eye').addClass('fa-eye-slash');
    }
  });
});

希望能幫助到你

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM