Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.12.2018, 15:40
Аспирант
Отправить личное сообщение для Alexprom Посмотреть профиль Найти все сообщения от Alexprom
 
Регистрация: 19.09.2018
Сообщений: 60

ToolTip не работает если на кнопке установлен disabled
Здравствуйте уважаемые друзья!
Захотел поставить к себе на сайт tooltip, нашел, он работает.
Но когда на кнопке "<button>" установлен атрибут disabled то tooltip не срабатывает.

Почему на кнопке установлен disabled.
Кнопка "купить" если пользователь не выбрал опции "цвет, размер" то на кнопке стоит disabled и удаляется как только пользователь выбрал опции...

Вот сам скрипт который отвечает за tooltip
(function($) {
  $.fn.tool = function(options) {
    var defaults = {
      xOffset: 10,
      yOffset: 25,
      tooltipId: "tool",
      clickRemove: false,
      content: "",
      useElement: ""
    };
    var options = $.extend(defaults, options);
    var content;
    this.each(function() {
      var title = $(this).attr("title");
      $(this).hover(function(e) {
          content = (options.content != "") ? options.content : title;
          content = (options.useElement != "") ? $("#" + options.useElement).html() : content;
          $(this).attr("title", "");
          if (content != "" && content != undefined) {
            $("body").append("<div id='" + options.tooltipId + "'>" + content + "</div>");
            $("#" + options.tooltipId)
              .css("position", "absolute")
              .css("top", (e.pageY - options.yOffset) + "px")
              .css("left", (e.pageX + options.xOffset) + "px")
              .css("display", "none")
              .fadeIn("fast")
          }
        },
        function() {
          $("#" + options.tooltipId).remove();
          $(this).attr("title", title);
        });
      $(this).mousemove(function(e) {
        $("#" + options.tooltipId)
          .css("top", (e.pageY - options.yOffset) + "px")
          .css("left", (e.pageX + options.xOffset) + "px")
      });
      if (options.clickRemove) {
        $(this).mousedown(function(e) {
          $("#" + options.tooltipId).remove();
          $(this).attr("title", title);
        });
      }
    });

  };
})(jQuery);

jQuery(document).ready(function($) {
  $("button").tool();
})


Можно как-то заставить скрипт работать когда на кнопке стоит disabled??
Заранее спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 22.12.2018, 17:45
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

Alexprom,
https://www.codeseek.co/preview/mLYWKq
Ответить с цитированием
  #3 (permalink)  
Старый 22.12.2018, 18:03
Аспирант
Отправить личное сообщение для Alexprom Посмотреть профиль Найти все сообщения от Alexprom
 
Регистрация: 19.09.2018
Сообщений: 60

Сообщение от рони Посмотреть сообщение
Alexprom,
https://www.codeseek.co/preview/mLYWKq
Я наверное не понял, что вы имеете ввиду.
Ваш способ, просто меняет цвет кнопки, а где title??
Ответить с цитированием
  #4 (permalink)  
Старый 22.12.2018, 18:40
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

Alexprom,
по ссылке хак, в результате которого на button disabled, можно повесить hover();
смотрите закладки там html и css, и сделайте также
Ответить с цитированием
  #5 (permalink)  
Старый 22.12.2018, 18:53
Аспирант
Отправить личное сообщение для Alexprom Посмотреть профиль Найти все сообщения от Alexprom
 
Регистрация: 19.09.2018
Сообщений: 60

Сообщение от рони Посмотреть сообщение
Alexprom,
по ссылке хак, в результате которого на button disabled, можно повесить hover();
смотрите закладки там html и css, и сделайте также
Взял ваш хак, скопировал на страницу js, css и html
и не работает, как вставлять - знаю...
Ответить с цитированием
  #6 (permalink)  
Старый 22.12.2018, 18:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

button disabled event
Alexprom,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
button {
  position: relative;
  margin: 20px;
}
button .overlay {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>
(function($) {
  $.fn.tool = function(options) {
    var defaults = {
      xOffset: 10,
      yOffset: 25,
      tooltipId: "tool",
      clickRemove: false,
      content: "",
      useElement: ""
    };
    var options = $.extend(defaults, options);
    var content;
    this.each(function(i) {
      var title = $(this).attr("title");
      $(this).hover(function(e) { console.log("hover")
          content = (options.content != "") ? options.content : title;
          content = (options.useElement != "") ? $("#" + options.useElement).html() : content;
          $(this).attr("title", "");
          if (content != "" && content != undefined) {
            $("body").append("<div id='" + options.tooltipId + "'>" + content + "</div>");
            $("#" + options.tooltipId)
              .css("position", "absolute")
              .css("top", (e.pageY - options.yOffset) + "px")
              .css("left", (e.pageX + options.xOffset) + "px")
              .css("display", "none")
              .fadeIn("fast")
          }
        },
        function() {
          $("#" + options.tooltipId).remove();
          $(this).attr("title", title);
        });
      $(this).mousemove(function(e) {
        $("#" + options.tooltipId)
          .css("top", (e.pageY - options.yOffset) + "px")
          .css("left", (e.pageX + options.xOffset) + "px")
      });
      if (options.clickRemove) {
        $(this).mousedown(function(e) {
          $("#" + options.tooltipId).remove();
          $(this).attr("title", title);
        });
      }
    });

  };
})(jQuery);

jQuery(document).ready(function($) {
  $(".title").tool();
})

  </script>
</head>

<body>
<button disabled="disabled" ><div class="overlay title" title="disabled"></div>001</button>
<button title="work" class="title">002</button>
</body>
</html>
Ответить с цитированием
  #7 (permalink)  
Старый 22.12.2018, 20:21
Аспирант
Отправить личное сообщение для Alexprom Посмотреть профиль Найти все сообщения от Alexprom
 
Регистрация: 19.09.2018
Сообщений: 60

рони,
Большое вам спасибо!) Все работает замечательно! Хорошего вам дня!)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как при быстром многократном клике по кнопке обрабатывать только первый клик battrack jQuery 3 22.03.2012 10:47
Скрипт работает только если подключать js в самом низу html! Pekkonen jQuery 3 26.01.2011 01:44
Не работает flot если его назначит через JavaScript PAMAC Firefox/Mozilla 4 09.11.2009 18:46
не работает функц. календаря если в имение есть [] kotjke Я не знаю javascript 2 04.06.2009 11:43
FireFox: onmouseover не работает при зажатой кнопке мыши no. Общие вопросы Javascript 4 19.08.2008 13:43