Использование appendTo () в JQuery добавляет элемент, а затем немедленно удаляет его ... решение? - PullRequest
0 голосов
/ 27 июля 2010

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

Кто-нибудь может понять, почему это может происходить?

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

<?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');
    }

Сначала я подумал, что вызывается скрипт, который вызывает document.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 и попытка что-то быстро собрать.

TIA, Энди

Ответы [ 2 ]

5 голосов
/ 27 июля 2010

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

foreach ($words as $word) {
    echo    "<li class='$word[0]'><a href='#' onclick='add_to();'>$word</a></li>";
}
0 голосов
/ 27 июля 2010

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

...