это мой код: (Im использует CMS, основанную на MVC).
HTML:
<div class="item_group_title">
<a id="title_{$group.title}" data-tip="{lang("show", "store")}" class="hide_group" href="javascript:void(0)" onClick="Store.toggleGroup(this)">
<img src="{$url}application/images/icons/{$group.title}.png">
</a>
</div>
...
<section class="item_group" id="group_{$group.title}" {if $minimize}style="display:none"{/if}>
</section>
ЯШ:
toggleGroup: function(field)
{
var titleId = $(field).attr('id');
var groupId = $titleId.text().replace('title_', 'group_');
var group = $($groupId);
if(group.is(":visible"))
{
$(field).attr('data-tip', lang("hide", "store"));
}
else
{
$(field).attr('data-tip', lang("show", "store"));
}
group.css("display","visible");
},
То, что я пытаюсь получить, это: Когда я нажимаю на ссылку, раздел ниже должен быть видимым. Там будут некоторые ссылки и некоторые разделы, и каждая ссылка будет влиять на один раздел.
Моя проблема в том, что я получаю эту ошибку: $ titleId не определен
Есть идеи? огромное спасибо
titleId
и $titleId
- это не одно и то же, долларовый знак - это просто другой символ, который является частью имени переменной.
Как насчет
var $titleId = $(field).attr('id');
var $groupId = $titleId.text().replace('title_', 'group_');
var group = $($groupId);
То же самое с большим количеством ваших переменных, убедитесь, что у них либо есть доллар, либо нет.
$titleId
теперь является идентификатором, возвращаемым в строке выше, который будет просто строкой, а строка не имеет методаtext()
, так что это звучит правильно.