2012-01-11 5 views
1

Итак, я создаю свое собственное меню панировочных сундуков с помощью jQuery, так как я не хотел загружать другой раздутый плагин. У меня есть этот код:

function go_back(sec) { 
    $('.content').html('<p>Loading</p>').load('_library_q.php?','sec='+sec); 
    $(this).nextAll().remove(); 
} 

Это называется по щелчку ссылки. Он загружает область содержимого и удаляет следующие ссылки. Это образец формата каждой ссылки:

<span> &gt; <a style="cursor:pointer" OnClick="go_back('4');">Foo</a></span> 

Погрузочные работы, но следующие ссылки не удаляются. Я считаю, что это потому, что он ищет <a>, однако он не находит его. Мне нужно будет указать родителя <span>. Я пробовал использовать $(this).parent().nextAll().remove(); Однако это не работает. Любая помощь?

+0

Не могли бы вы привести пример [скрипка] (http://jsfiddle.net)? – Ken

+0

'' '' '' '' '' 'undefined', если вы находитесь в строгом режиме) внутри' go_back', потому что вы вызываете его как глобальную функцию. Это будет элемент внутри обработчика onclick: 'OnClick =" go_back ('4'), это элемент здесь "' – Esailija

ответ

3

Как быстро исправить, я хотел бы предложить:

function go_back(sec, elem) { 
    $('.content').html('<p>Loading</p>').load('_library_q.php?','sec='+sec); 
    $(elem).parent().nextAll().remove(); 
    } 

HTML:

<span> &gt; <a style="cursor:pointer" OnClick="go_back('4', this);">Foo</a></span> 

Но в JavaScript в HTML ужасен, в конечном счете, так что вы должны избавиться от него вообще и дизайн всей вещь, не полагаясь на встроенный javascript в html.

демо: http://jsfiddle.net/gHh7D/

+0

Спасибо, отлично работает! –

0

Вы не можете назвать $ (это), как вы вызываете глобальную функцию. Вместо этого один способ, которым Вы могли бы решить это с помощью цикла по ссылкам и с помощью функции JQuery в .click() -

$('a').each(function() { 
    $(this).click(function() { 
     $('.content').html('<p>Loading</p>').load('_library_q.php?', 'sec=' + $(this).attr('id')); 
     $(this).parent().nextAll().remove(); 
    }); 
}); 

Я добавил идентификатор атрибута для каждой ссылки, так что вы можете использовать значение идентификатора для функции загрузки. Вы можете увидеть пример: http://jsfiddle.net/dxAyT/

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