2013-06-28 4 views
4

Я просто посмотрели на подсказках из JQuery-щ и у меня есть следующий код происходит:JQuery подсказка индивидуальные задержки для различных типов

$(function() { 
     $(document).tooltip({ 
      items: "[tooltip], [title]", 
      content: function() { 
       var element = $(this); 
       if (element.is("[tooltip]")) 
       { 
        var id = element.attr("tooltip"); 
        return $("#tooltip_"+id)[0].innerHTML; 
       } 
       if (element.is("[title]")) 
       { 
        return element.attr("title"); 
       } 
      }, 
      show: { 
       effect: "slideDown" 
      } 
     }); 
    }); 

Он работает и делает то, что он должен.
Причина, по которой я применил различные методы, если это всплывающая подсказка с атрибутом «подсказка» или атрибутом «title»:
Если это атрибут «всплывающей подсказки», то есть только идентификатор, а где-то на странице div-элемент, содержащий содержимое всплывающей подсказки (это таблица с материалами в ней).
Но если это атрибут «title», я хочу обычного поведения.

Однако я хочу определить различные задержки для всплывающих подсказок, определенных атрибутами «подсказка» или «название».
E.g. если это всплывающая подсказка «подсказка», я хочу задержку в 200 мс, и если это всплывающая подсказка «title», я хочу 500 мс.

Я понятия не имею, как это сделать.
Я знаю, что если я добавлю delay: 500 после effect: "slideDown", то задержка для ВСЕ всплывающих подсказок будет равна 500 мс, но я не знаю, как это сделать в отдельности.

Надеюсь, я не беспокоил вас таким длинным текстом, и вы понимаете мою проблему.
Заранее благодарим!

ответ

0

Одно решение просто используется .tooltip() дважды.

$(function() { 
    $(document) 
     .tooltip({ 
      items: "[tooltip]", 
      content: function() { 
       var $element = $(this); 
       var id = $element.attr("tooltip"); 
       return $("#tooltip_" + id).html(); 
      }, 
      show: { 
       effect: "slideDown", 
       duration: 200 
      } 
     }) 
     .tooltip({ 
      items: "[title]", 
      content: function() { 
       var $element = $(this); 
       return $element.attr("title"); 
      }, 
      show: { 
       effect: "slideDown", 
       duration: 500 
      } 
     }); 
}); 
+0

К сожалению, это не работает. Используется только последний вызов tooltip(). Я думаю, это просто перезаписывает данные, установленные предыдущим вызовом. – Ch33f