2010-07-27 3 views
0

Это, вероятно, вопрос о нобе, но то, как я реализовал функцию appendTo() ниже, не работает должным образом. В принципе, он добавил элемент и моментально удалил его снова. Это моргает, и вы скучаете по нему.Использование appendTo() в JQuery добавляет элемент, а затем немедленно удаляет его ... решение?

Может ли кто-нибудь понять, почему это может произойти?

Вот где функция вызывается:

<?php foreach ($words as $word) { 
echo "<li class='$word[0]'><a href='' onclick='add_to();'>$word</a></li>"; 
} 

А вот сама функция (в значительной степени взяты из учебника сайта JQuery:

function add_to() { 
     $('<h1>Test</h1>').appendTo('.ad_text'); 
    } 

Моя первая мысль о том, что сценарий, который называет документ .ready(), который уничтожает функцию add_to()? Этот скрипт находится над add_to(), и это:

$(document).ready(function(){ 

     //when a link in the filters div is clicked... 
     $('#filters a').click(function(e){ 

      //prevent the default behaviour of the link 
      e.preventDefault(); 

      //get the id of the clicked link(which is equal to classes of our content 
      var filter = $(this).attr('id'); 

      //show all the list items(this is needed to get the hidden ones shown) 
      $('#content ul li').show(); 

      /*using the :not attribute and the filter class in it we are selecting 
      only the list items that don't have that class and hide them '*/ 
      $('#content ul li:not(.' + filter + ')').hide(); 

     }); 

    }); 

Возможно, существует конфликтный код? Извините - новичок в Javascript, и вы пытаетесь быстро что-то сварить.

ТИА, Энди

+0

Где находится add_to? – balupton

+0

Пожалуйста, покажите нам разметку HTML ... не PHP. – James

+0

@balupton add_to вызывается из события onclick внутри фрагмента php выше. @ J-P HTML находится в пределах PHP выше. Вам нужно больше HTML? –

ответ

5

Ваша ссылка перезагрузки страницы. Попробуйте это (добавлено # в HREF атрибута)

foreach ($words as $word) { 
    echo "<li class='$word[0]'><a href='#' onclick='add_to();'>$word</a></li>"; 
} 
+0

+1 - Хороший улов, полностью пропустил это –

+0

так избавиться от # в href? –

+0

О, извините, просто увидел, что вы добавили #! благодаря! –

0

Я не могу сказать точно, но вы можете быть переопределение функции щелчка, определенный в атрибуте OnClick с одной в document.ready функции.

+0

Важно отметить, что он/она не * переопределяет *, они * добавляют * обработчик кликов, если эта ссылка находится внутри '# filters'. –

+0

Да, Ник прав. и Nalum добавила хэш-якорь. однако, я столкнулся с трудностями при попытке appendTo() в тег textarea. Какие-либо предложения? –