#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()
, заключено в кавычки. И убедитесь, что вы добавляете его с #