Переключение Jquery, работающее в IE / Chrome, не определено в FF

#javascript #jquery

#javascript #jquery

Вопрос:

Кажется, у меня противоположная проблема, как и у всех остальных, мой Javascript не работает в Firefox. Firebug сообщает мне, что идентификатор не определен, но это не так, если только FF не распознает теги как объекты, которыми управляет javascript, например IE / Chrome?

PHP выглядит так:

 echo '<a href="javascript:void(0)" onclick="toggle(details_'.$record_details.')">Details</a>';  
echo '<tr style="display:none" id="details_'.$record_details.'">';
echo '<td class="noborder" colspan="7">';
echo '<div>';
   Bunch of Content Here.
echo '</div>';
echo </td>;
echo </tr>;
  

Javascript — это просто

 function toggle(id){
$(id).toggle();}
  

Разделы правильно переключаются как в IE, так и в Chrome, но Firefox возвращает «details_0 не определен» и т. Д. для каждого отдельного.

Есть предложения? На самом деле это сбой при вызове, достаточно странно, потому что я помещаю предупреждение в первую строку переключения, и оно никогда не срабатывает, так что оно даже не заходит так далеко. Чего мне не хватает?

Спасибо!

Комментарии:

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

Ответ №1:

Назовите это так: toggle('text in here') .

И в функции переключения вызовите его следующим образом: $("#" id).toggle(); .

Комментарии:

1. попробовал. не помогло. Я тоже так думал, но это сломало Chrome и IE.

Ответ №2:

Причина, по которой это вообще работает, заключается в том, что некоторые браузеры фактически создают переменную уровня окна details_something . Таким образом, вы передаете ссылку на свое tr строковое значение вместо его идентификатора.

Убедитесь, что значение, которое вы передаете toggle() , заключено в кавычки. И убедитесь, что вы добавляете его с #