2013-05-22 2 views
1

Я думаю, что я немой, как * *, но я не могу заставить его работать без указания атрибута title. Вот мой код:jQuery ui tooltip/bootstrap tooltip/popover не может заставить его работать с атрибутом title

$('.js-client-info').popover({html : true, title: "ZOMG", content:"asdasdasdasdasdasd"}); 

Не работает

$('.js-client-info').tooltip({html : true, title: "ZOMG", content:"asdasdasdasdasdasd"}); 

Не работает

Rendering следующее:

<a class="js-client-info" data-original-title="" title="">gg</a> 

Если я пойду и место т он атрибут title на разметке все работает нормально. Но я хочу использовать свойство контента и загружать информацию с помощью вызовов ajax. Помоги мне, пожалуйста.

К не работает я имею в виду:

  • всплывающее окно никогда не показывает, даже если я называю его с кодом $ подсказке ('шоу ')
+0

jQuery UI tooltip default функциональность просто - $ ('. Element'). Tooltip(); который захватит название attr и отобразит его. Итак, что вы пытаетесь сделать? – EasyBB

+0

Почему у меня есть опции «title» и «content», а затем при создании всплывающей подсказки? Я хочу разместить html внутри всплывающей подсказки, и я не хочу помещать html в тег заголовка. –

+0

О, ладно, я обновлю свой ответ на что-нибудь для вас. – EasyBB

ответ

1

http://jsfiddle.net/nzgdv/2/

Проблема была зафиксирована путем указания items вариант.

То, что делает всплывающая подсказка jquery UI, заменяет всплывающую подсказку по умолчанию браузера.

Итак, я бы предположил, что он не работает автоматически с элементами, которые не имеют свойств title (что вызывает отображение всплывающей подсказки по умолчанию).

Это также в документации:

Элементы и параметры контента должны оставаться в синхронизации. Если вы меняете один из них, вам нужно изменить другое.

+0

OK MAN! Ты замечательный. Я пробовал с элементами, но я никогда бы не подумал о том, чтобы поместить элемент упаковки внутри: D Не имеет для меня никакого смысла. Спасибо! –

+0

Я не знаю, что вы пробовали, но, в основном, параметр items указывает подсказку, с какими элементами она должна привязываться, а затем опция контента сообщает ей, что показывать. Таким образом, это имеет смысл. = P – rgin

+0

OP думал, что 'items:" title, data-html "', вероятно, сработает. ? – EasyBB

1

(' JS-клиент-инфо'.). JQuery UI функциональность подсказке по умолчанию просто как торт: D

Basic JQuery:

$(function() { 
$('.js-client-info').tooltip(); 
}); 

Для добавления к событиям и так далее вы могли бы сделать это

$(function() { 
    $('.js-client-info').tooltip({ 
    show: { 
    effect: "slideDown", 
    delay: 250 
    }, 
    hide: { 
    effect: "slideUp", 
    } 
    }); 
}); 

Вот для пользовательского контента:

http://jsbin.com/uwuwuk/1/edit

$(function() { 
    $('.tip').tooltip({ 
    show: { 
    effect: "slideDown", 
    delay: 250 
    }, 
    hide: { 
    effect: "slideUp" 
    }, 
    items: "[title], [data-html]",//call the attr inside square brackets 
    content: function() { 
    var element = $(this); 
     var call = $(this).attr('data-html'); //var call is same as items though we need to do this 
     var randHTML = {a:'<div class="red"></div>',b:'<div class="blue"></div>'};//array of html (technically objects) 
    if (element.is("[data-html]")) { 
     return randHTML[call]; //if element is data-html return the randHTML with which attr it has (a, b, c, d) 
    } 
    if (element.is("[title]")) { //if just title return title 
     return element.attr("title"); 
    } 
} 
    }); 
}); 
+0

@ Александр, код, который я предоставил, лучше, поскольку вы будете получать одинаковый контент снова и снова для другого контента. Это проще, поэтому у вас может быть другой контент – EasyBB

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