2010-01-22 3 views
1
$("#id").tooltip({ 
     effect: "slide", 
     tip: '.tooltip' 
    }); 

Я хочу удалить объект, созданный этим кодом.Как удалить объект jquery во время выполнения?

«Flowplayer JQuery инструменты» плагин

Этот вопрос имеет ответ, описанный в нижней части моего поста!

Смотрите дно, если вы не хотите потерять ваше время

.

---------- ---------- UPDATE

Это должно быть что-то вроде этого

Код:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html><head> 
    <title>jQuery tooltip</title> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
    <script src="http://cdn.jquerytools.org/1.1.2/full/jquery.tools.min.js"></script> 

    <script type="text/javascript"> 


/******* THIS FUNCTION IS JUST FOR TEST, REMOVE IT LATER *********/ 
    $(document).ready(function() { 
     $("#_2").tooltip({ 
      effect: "slide", 
      tip: '.tooltip' , 
      position: 'bottom center' 
     }); 

    }); 
/******* THIS FUNCTION IS JUST FOR TEST, REMOVE IT LATER *********/ 




/** The code below is not working as I expect, it doesn't MOVE tooltip **/ 

      var old_id; 

    //first time - create tooltip 
     function my_create(id){ 
      $("#"+id).tooltip({ 
       effect: "slide", 
       tip: '.tooltip', 
       position: 'bottom center' 
      });  
     } 

    //next times - move tooltip to other element 
     function my_unlink(id){ 
      $("#"+id).unbind("mouseover"); 
      //todo 
     } 

     function my_link(id){ 
      //todo 
     } 


     //THE MAIN FUNCTION 

     function do_tip(new_id){ 
      if(old_id){ 
       my_unlink(old_id); 
       my_link(new_id); 
       alert(new_id); 
      } 
      else 
       my_create(new_id); 

      old_id=new_id; 
     //new_id.focus(); 
    } 

    </script> 

    <style> 
    .tooltip { 
     display: none; 
     background:transparent url(http://flowplayer.org/tools/img/tooltip/black_arrow_bottom.png); 
     font-size:14px; 
     height:70px; 
     width:160px; 
     padding:25px; 
     color:#fff; 
    } 
    h1 { 
     width: 400px; 
     text-align: center; 
     background-color: yellow; 
    } 

    </style> 
</head> 
<body> 

    <h1 onclick="do_tip(this.id)" id="_1">John</h1> 
    <h1 onclick="do_tip(this.id)" id="_2">Mary</h1> 
    <h1 onclick="do_tip(this.id)" id="_3">Dan</h1> 
    <h1 onclick="do_tip(this.id)" id="_4">Paul</h1> 
    <h1 onclick="do_tip(this.id)" id="_5">Kim</h1> 

    <div class="tooltip">There should be only one tooltip on a page!</div> 

</body></html> 

.

--------- UPDATE 2 ----------

Вот ответ

Linking/unlinking jquery object to an element

Мораль этой длинной сказки :

Я думал, что это общий, а не код или вопрос, связанный с плагином. Я думал, что решение должно быть простым, как «уничтожить старый объект подсказки, а затем создать новую, attatched к другому элементу»

+0

Это плагин, который вы используете? Если это так, может быть способ удалить его в API плагинов. – Fermin

+0

Какой плагин это? Не могу ответить, не зная, что создает плагин. –

+3

, пожалуйста, укажите все необходимые html для запуска этого кода, а также используемую библиотеку javascript и подключаемый модуль – bjelli

ответ

2

Вы пишите, что хотите удалить объект по коду.

Что делает код, так это то, что первый поиск элемента с идентификатором ID на вашей странице, , назовем этот «триггер».

Я меняю одну вещь в коде здесь: вместо выбора триггера по id 'ID' Я выбираю, используя класс 'do_tooltip_for_this'. Таким образом, я могу настроить всплывающую подсказку для сразу нескольких триггеров для .

Если пользователь наводит курсор на триггер, элемент с подсказкой класса, то есть , уже присутствующий на странице, будет показан и расположен рядом с этим триггером. Если пользователь перемещает мышь от триггера, этот элемент автоматически скрывается снова. Это работает и для нескольких триггеров, эта же всплывающая подсказка используется повторно.

Вы также можете скрыть подсказку вручную, написав

$('.tooltip').hide(); 

Вы можете отключить все поведение, написав

$(".do_tooltip_for_this").unbind("mouseover"); 

Вот весь код:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html><head> 

    <title>jQuery tooltip</title> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
    <script src="http://cdn.jquerytools.org/1.1.2/full/jquery.tools.min.js"></script> 

    <script type="text/javascript"> 
     var o; 
    $(document).ready(function() { 

    o = $(".do_tooltip_for_this").tooltip({ 
     effect: "slide", 
     tip: '.tooltip' , 
     position: 'bottom center' 
    }); 
            
    }); 
    </script> 
    <style> 
    .tooltip { 
     display: none; 
     background:transparent url(http://flowplayer.org/tools/img/tooltip/black_arrow_bottom.png); 
     font-size:12px; 
     height:70px; 
     width:160px; 
     padding:25px; 
     color:#fff; 
    } 
    h1 { 
     width: 400px; 
     text-align: center; 
     background-color: yellow; 
    } 

    </style> 
</head> 
<body> 

    <h1 title="a tooltip regarding John" class="do_tooltip_for_this">This is John</h1> 
    <h1 title="a tooltip regarding Paul" class="do_tooltip_for_this">This is Paul</h1> 
    <h1 title="a tooltip regarding George" class="do_tooltip_for_this">This is George</h1> 
    <h1 title="a tooltip regarding Ringo" class="do_tooltip_for_this">This is Ringo</h1> 

    <div class="tooltip"></div> 

</body></html> 
+0

Спасибо, ты понял меня лучше. Теперь я могу сформулировать вопрос более конкретным: у меня есть 5 триггерных элементов и 1 объект всплывающей подсказки. Как восстановить привязку всплывающей подсказки от одного элемента к другому? – Dan

+0

Чтобы получить более качественные ответы, вы должны дать больше контекста в своем вопросе. в этом случае: покажите не только javascript, но и затронутый html. – bjelli

+0

Спасибо, я отправил код! Я думал, что это общий, а не код или вопрос, связанный с плагином. Я думал, что решение должно быть таким же простым, как «уничтожить старый объект всплывающей подсказки, а затем создать новый, прикрепленный к другому элементу». Ну, похоже, что вещи сложнее – Dan

0

Как об использовании этого:

delete (object_here); 

Это позволит удалить JavaScript объектов ,

+0

Что такое "object_here"? – rahul

+0

Это не приведет к удалению всплывающей подсказки. Удалить используется для удаления объекта в JavaScript. – Parrots

0

с помощью JQuery можно использовать .remove()

$("#id").remove(); // will remove element with an id of 'id' 

EDITED

это работает для кого-то here. Это может также работать на вас.

// unbind focus and mouseover to cover all the bases just 
    // incase the tooltip is not being applied to an input 
    $("#id").unbind("focus"); 
    $("#id").unbind("mouseover"); 
+0

, если я правильно вас понимаю ... – Reigel

+2

Это удалит фактический элемент ... он хочет удалить всплывающую подсказку, добавленную к этому элементу плагином, но трудно ответить, не зная, какой плагин. –

+0

Я думаю, что этот код удаляет объект, который имеет всплывающую подсказку, а не объект всплывающей подсказки. – rahul

0

Зависит. Если вы что-то вроде .remove() на нем, он фактически удаляет весь элемент с этим ID со страницы.

Если вы хотите удалить всплывающую подсказку, ознакомьтесь с плагином, который вы используете. Обычно плагины предоставляют возможность уничтожения (диалог, предоставленный jQuery UI, делает это).

Если вы не хотите удалять весь элемент со страницы и затем воссоздать его, в этом нет ничего в основной библиотеке.Если вы хотите дать этот метод идти это бы, чтобы вы идете в правильном направлении:

$('#id').replaceWith($('#id').clone()); 

По умолчанию .clone не будут копировать события и данные, связанные с элементом, так что должен быть грязным способом избавиться от всплывающей подсказки. Но опять же, посмотрите, есть ли у вашего плагина встроенный способ очистки.

+0

спасибо. этот плагин не предоставляет деструктор ... – Dan

0
$("#id").tooltip({}); 

Вы пробовали?

+0

не работает, он просто возвращает переменную объекта – Dan

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