2011-07-28 2 views
0

Я использовал плагин JQuery QTIP, чтобы создать некоторые подсказки, используя следующий код:JQuery QTIP наследование

$('*[title]').each(function() { 
     //if ($(this).attr('title') != "") { 
     $(this).qtip({ 
      content: $(this).attr('title'), 
      position: { 
       target: 'mouse', 
       adjust: { 
        screen: true, 
        x: 5, 
        y: 15 
       }, 
       corner: { 
        target: 'rightMiddle', 
        tooltip: 'leftMiddle' 
       } 
      }, 
      style: { 
       fontSize: 11, 
       padding: '2px 6px', 
       textAlign: 'left', 
       lineHeight: 1.5, 
       fontWeight: 'bold', 
       color: '#444', 
       border: { 
        width: 1, 
        radius: 2 
       }, 
       name: 'cream' 
      } 
     }) 
      .attr('title', ''); 
     // } 
    }); 


    $('span.help').each(function() { 
     $(this).qtip({ 
      /*content: { 
      text: $(this).html() 
      },*/ 
      content: $(this).attr('title'), 
      position: { 
       adjust: { 
        screen: false, 
        x: 0, 
        y: 0 
       }, 
       corner: { 
        target: 'topRight', 
        tooltip: 'bottomRight' 
       } 
      }, 
      show: 'mouseover', 
      hide: 'mouseout', 
      style: { 
       title: { 'font-size': 11, padding: '6px 6px', lineHeight: 1.5 }, 
       fontSize: 11, 
       padding: '6px 6px', 
       textAlign: 'left', 
       lineHeight: 1.5, 
       fontWeight: '600', 
       border: { 
        width: 3, 
        radius: 3 
       }, 
       tip: 'bottomRight', 
       name: 'cream' 
      } 
     }) 
    .attr('title', ''); 
    }); 

В основном все элементы с названием имеет всплывающую подсказку, но я хочу элементы с классом help иметь специальная подсказка. Случается, что я получаю TWO всплывающие подсказки для элемента справки. Можно ли полностью переопределить первый со вторым?

Возможно, используя какой-либо оператор if, чтобы сначала проверить, что это НЕ класс справки, если нет, то выполните первую функцию, и если да, тогда выполните вторую функцию.

Благодаря

+0

Я обновил свой ответ после фиксации класса Иссу. – Sparkup

ответ

1

Вы пробовали просто добавив: нет() положение, чтобы ваш первый выбор, чтобы исключить помощь охватывает ?:

$('*[title]:not(span.help)').each(function() { 
+1

Удивительная благодарность. Это отлично работает. – Cameron

+0

YW! Рад помочь :) – kiddailey

0

EDIT:

var title = $(this).attr('title'), 
    help = $(this).attr('class'), 
    isHelp = undefined; 

if(help !== undefined){ 
    var isHelp = help.search('help'); 
} 


if(title !== undefined){ 


    if((title.length !== 0)&&((isHelp == -1)||(isHelp == undefined))){ 

     alert('do title tiptool function'); 

    } 

} 

Пример: http://jsfiddle.net/ZqLH6/6/

0

Вы можете иметь селектор типа $("[title], .help"), который выбирает все элементы, которые вы хотите, чтобы дать подсказку. Затем внутри каждой анонимной функции используйте $(this).hasClass("help"), чтобы определить, какую подсказку вы хотите предоставить этому элементу.

Смежные вопросы