Плагин Tooltipster не запускает функцию jquery при нажатии ссылки во всплывающей подсказке

Я использую плагин jquery под названием Tooltipster ( http://calebjacob.com/tooltipster/), и я вставляю некоторый HTML в наконечник, который содержит href. Если я нажму на ссылку, страница откроется, как я ожидаю. Однако, если я попытаюсь использовать тот же самый href, добавлю имя класса, а затем попытаюсь запустить функцию jquery, она не сработает. Я часами рвал на себе волосы, пытаясь понять это. Любая помощь будет оценена по достоинству. Вот некоторый урезанный код для иллюстрации примера.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>

<link rel="stylesheet" type="text/css" href="tooltipster.css" />
<script language="javascript" type="text/javascript"  src="Scripts/jquery-1.8.0.min.js"></script>
<script language="javascript" type="text/javascript" src="Scripts/jquery.tooltipster.js"></script>

<script>
$(document).ready(function() {
    $('.element').tooltipster({
       animation: 'fade',
       delay: 180,
       offsetX: 0,
       offsetY: 0,
       onlyOne: true,
       position: 'top',
       maxWidth: '300',
       speed: 150,
       timer: 0,
       theme: '.tooltipster-default',
       interactive: true,
       interactiveTolerance: 350,      
       updateAnimation: true,
       trigger: 'custom',
       interactive: true
    });

    $('.element').tooltipster('update', 'Select an Image from the right hand image list.<a class="update" href="#">Cancel Editing.</a>');
    $('.element').tooltipster('show');

    $('.update').click(function(){
        alert("hello");
    }); 

});


</script>

</head>

<body>

<a class="update" href="#">Hello</a>


<div align="center" class="element" title="Try clicking <a href='http://google.com'>this link</a>"> 
    <p>This div has a tooltip when you hover over it!</p>
</div>

</body>
</html>

Я собрал Fiddle, чтобы проиллюстрировать проблему. http://jsfiddle.net/bCqyL/


person Rob    schedule 06.12.2013    source источник


Ответы (1)


Когда вы устанавливаете обработчик кликов для элемента .udpate, jquery еще не знает об элементах с этим классом. Вот почему обработчик не устанавливается в вашем примере. Вместо этого используйте другой подход, который обрабатывает все клики по документу и выбирает только адреса для элементов .update.

$(function(){
    $(document).on('click', '.update', function(){
        alert('hello');
        return false;
    });    
});

http://jsfiddle.net/bCqyL/3/

person neyronius    schedule 28.01.2014