2013-06-04 2 views
-1

Мне нужен другой набор (или несколько наборов) глаз, чтобы увидеть, чего я не вижу. Я работаю на следующем веб-сайте: http://www.nbtc.org/nv2Javascript .load не работает последовательно, что мне не хватает?

Я динамически загружаю контент, используя .load, при нажатии ссылки соответствующий код из файла .php загружается в пустой div, который расположен поверх домашний экран.

Все ссылки на верхнем меню работают отлично, пара ссылок, которые я заполнил на левой вертикальной панели, отлично работает. Попробуйте Drive & Парк - Ключ для примера. FYI - работает ссылка «Главная».

Тем не менее, ссылка «Free Carpool/Vanpool Matching, Transit Info», которая находится на главном экране, не будет работать. Код форматируется идентично другим ссылкам, которые работают. Я уверен, что есть что-то в том, как у меня организованы разные части, которые не позволяют работать, я просто этого не вижу.

Ссылка хорошая, выбор «Запросить информацию» - «Информация о Rideshare» в меню слева отображает ту же самую точную страницу без проблем.

Заранее благодарим за вашу помощь!

UPDATE !! Сожалею!! Это поможет, если я на самом деле поставлю правильный веб-сайт. На самом деле это http://www.nbtc.org/nv2. (Я установил связь в верхней части)

Как конкретный код, ссылки в горизонтальной и вертикальной строке меню являются вариациями следующих действий:

<script type="text/javascript"> 
    $("#menubar").on("click", ".target", function(event{event.preventDefault(); 
    $("#content").load(event.target.href); 
}); 
</script> 

Таким образом, ссылка имеет класс «.TARGET» который затем загружает связанный php в пустой div '#content', который находится поверх главной домашней страницы. Помимо идентификатора, сценарий идентичен. В сценарии левого меню «# leftmenu1» вместо «#menubar».

Таким образом, проблема связана с кнопкой «Free carpool matching». Он сидит в «#splash» ДИВ, который сидит за пустым «#content» DIV, он использует этот скрипт:

<script type="text/javascript"> 
    $("#splash").on("click", ".target", function(event){event.preventDefault(); 
    $("#content").load(event.target.href); 
}); 
</script> 

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

+4

Пожалуйста, включите соответствующую часть кода, который не работает, вместо того чтобы заставить людей попытаться найти его на веб-странице. Это также делает ваш вопрос полезным в будущем, когда веб-страница была исправлена ​​/ изменена. Кроме того, ни одна из проблемных ссылок, на которые вы ссылаетесь в своем вопросе, похоже, находится на связанной странице. – jfriend00

+0

@ jfriend00 Спасибо за подсказку, я обновил вопрос и понял его, хотя я не знаю, почему исправление действительно исправило его ... –

ответ

1

не Если ваши скрипты начинаются с:

$(document).ready(function() { 

после <script> тега? Пример:

<script type="text/javascript"> 
$(document).ready(function() { 
    $("#menubar").on("click", ".target", function(event) { 
     event.preventDefault(); 
     $("#content").load(event.target.href); 
    }); 
}); 
</script> 
+0

У меня изначально было так, когда javascript был в голове, теперь я иметь все javascript в конце страницы в теле. Я ни в коем случае не эксперт, но мое исследование показало, что функция document.ready не нужна, когда я включаю скрипт в конце страницы. Правильно? –

+0

Это необходимо в вашем случае. $ (document) .ready вызывается, когда DOM готов. Вы получаете доступ к элементам DOM (ids #menubar и #content), поэтому вам нужно сделать это таким образом. То, как вы делаете это сейчас, - это назначение событий несуществующим целям. –

+0

Я очень ценю, что вы объясняете это, я сделаю изменения и посмотрю, исправляет ли это это. –

2

После внесения исправлений в Javascript все еще не работает. Итак, я решил систематически удалить каждую часть div до тех пор, пока он не сработает. Это сделало трюк, то есть я получил его на работу, и почему он работает, я надеюсь, кто-то может просветить меня.

Вот оригинальная версия DIV:

<div id="cpmatch"><a class="target" href="ridematchapp.php"><span>  
<h1>FREE</h1>Carpool/Vanpool Matching,<br>Transit Info</span></a></div> 

С помощью CSS это делает большую круглую кнопку, слово «Free» был на первой линии и отформатирован большой и наклонным. «Span» использовался, чтобы я мог сделать остальную часть текста больше обычного текста на экране, но меньше, чем «Свободный», а не курсивом.

ЭТО БЫЛО СПАН! Я переставил CSS делает его более простым, но форматирования текста таким же, убрана срок так ДИВ теперь выглядит следующим образом:

<div id="cpmatch"><a class="target" href="ridematchapp.php">  
<h1>FREE</h1>Carpool/Vanpool Matching,<br>Transit Info</a></div> 

Это работает! Я не знаю почему, но это так.

Css, который я имел на пролете, был небольшим форматированием текста. Даже после того, как я удалил '#cpmatch span' из файла css, он все равно не сработает, поэтому форматирование не имеет к этому никакого отношения.

Кстати, это кошерный использовать тег h1, я переформатировал его с помощью css, поэтому он занимает место пролета, но если я наберу промежуток, вместо этого кнопка не будет работать.

+0

Странно, я рад, что вам удалось это исправить! –