JQuery Вопросы для начинающих (FF / IE выпуск) - PullRequest
1 голос
/ 05 октября 2010

Я немного поигрался с jQuery, просто пытаясь заменить текстовые поля по щелчку ссылки, а также скрыть / показать элементы контента. Похоже, что он отлично работает в IE, но я не могу заставить его работать в FF.

Мой JQuery:

$(function() {

$(".articles a").click(function() {
    articlenumber = "1"
    $(articlenumber).css("display", "none");
    articlenumber = $(this).attr("id");
    articlename = $(this).attr("name");
    articlenumber = '".' + articlenumber + '"';
    //alert(articlenumber);
    //$(articlenumber).css("display", "inline");
    $(articlenumber).attr("style", "display:inline;")
    $(".articletitle").text(articlename)
}); 

И мой HTML для этого (упрощенно):

<a id="article1" name="Article Title1" href="#">Link</a>
<a id="article2" name="Article Title2" href="#">Link</a>
<div class="articlename">Title</div>
<div class="article1" style="display:none;">Text 1</div>
<div class="article2" style="display:none;">Text 2</div>

Есть предложения, почему это не работает в FireFox? И что я могу убрать здесь?

Ответы [ 2 ]

4 голосов
/ 05 октября 2010
$(".articles a").click(function() {
    articlenumber = "1"
    $(articlenumber).css("display", "none");
    articlenumber = $(this).attr("id");
    articlename = $(this).attr("name");
    articlenumber = '".' + articlenumber + '"';
    $(articlenumber).attr("style", "display:inline;")
    $(".articletitle").text(articlename)
});

Хорошо, в порядке вашего сценария:

Объявите переменные, прежде чем пытаться присвоить значения, завершите строку и помните, что 1 - это число, а не строка:
articlenumber = "1"

должно быть

var articlenumber = 1;

jQuery обычно ожидает, что идентификатор будет id, class или тип элемента (a, li и т. Д.). Ни id, ни class не могут начинаться с цифры, они должны начинаться либо с подчеркивания _, либо с буквы (плюс пара других символов, которые я не могу вспомнить), и элементов нет <1>. Это может быть проблемой, так как с:
$(articlenumber)

эквивалентно либо:

$(1) or $('1')

оба из которых являются или должны быть недействительными (я думаю).

Затем вы переназначаете articlenumber снова без , сначала объявляя его var (то же самое верно в следующей строке, когда вы инициализируете articlename. <ч />

Я не уверен, что это ваши основные проблемы (я удалил ваш закомментированный код), но исправьте очевидное, тогда мы можем поговорить подробнее.

Я бы настоятельно рекомендовал вам овладеть Firebug и наблюдать за его консолью при загрузке / взаимодействии со страницей в Firefox. Он расскажет вам основные проблемы, которые у вас есть. Кроме того, в качестве дополнения я настоятельно рекомендую вам разрабатывать свои сайты / скрипты с помощью Google Chrome (с веб-инспектором), Safari Webkit (как с Chrome), Mozilla Firefox (с Firebug, как указано выше) и / или Opera (со стрекозой). Эти браузеры и инструменты веб-разработки более или менее заставят вас правильно разрабатывать свои сценарии. После того, как они работают и действительны, , затем попробуйте в IE.

Чаще всего он будет работать там, где он работает везде, разработка в IE сначала , кажется, позволяет развить вредные привычки и склонный к ошибкам JavaScript / jQuery, а затем запутаться, растерянность или разочарование, когда другие браузеры отказываются играть в мяч.

0 голосов
/ 05 октября 2010

Попробуйте изменить эту строку:

$(".articletitle").text(articlename)

Для

$(".articletitle").html(articlename)

Также мне интересно, правильны ли дескрипторы класса (.articletitle и .articlename)? Класс .articletitle я не вижу в HTML - только в javascript .. если это не где-то еще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...