парение jQuery передает переменную функции обратного вызова

Я пытаюсь удалить атрибут заголовка для ссылки на парение и затем добавить его назад на мыши. Я хотел бы передать var hoverText парению...

Вот код, который я имею. Какие-либо идеи?

$(".icon a").hover(function() {
  $this = $(this);
  var hoverText = $.data(this, 'title', $this.attr('title'));                             
  $(this).find("em").animate({opacity: "show", top: "-35"}, "slow");
  $(this).find("em").text(hoverText);       

  $this.removeAttr('title');       


}, function(hoverText) {             

  $(this).find("em").animate({opacity: "hide", top: "-45"}, "fast");     
  $(this).attr("title", hoverText);

});
7
задан Brian Barthold 9 June 2010 в 18:54
поделиться

2 ответа

Поместите "hoverText" в качестве глобальной переменной.

var hoverText = '';
$(".icon a").hover(function() {
  $this = $(this);
  hoverText = $.data(this, 'title', $this.attr('title'));                             
  $(this).find("em").animate({opacity: "show", top: "-35"}, "slow");
  $(this).find("em").text(hoverText);       

  $this.removeAttr('title');       


}, function() {             

  $(this).find("em").animate({opacity: "hide", top: "-45"}, "fast");     
  $(this).attr("title", hoverText);

});
1
ответ дан 7 December 2019 в 07:40
поделиться
$(".icon a").hover(function() {
  $this = $(this);
  $.data(this, 'title', $this.attr('title'));                             
  $(this).find("em").animate({opacity: "show", top: "-35"}, "slow");
  $(this).find("em").text(hoverText);       

  $this.removeAttr('title');       


}, function(hoverText) {             

  $(this).find("em").animate({opacity: "hide", top: "-45"}, "fast");     
  $(this).attr("title", $.data(this, 'title');

});

Уловка заключается в следующем:

$.data(this, 'title');

Когда вы используете данные, вы эффективно сохраняете переменную в этом элементе dom для явной цели, которую вы только что описали. Вы также можете решить проблему, объявив переменную $ this над вашей начальной функцией наведения, расширив область действия, чтобы охватить и то, и другое.

6
ответ дан 7 December 2019 в 07:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: