#jquery #jquery-plugins
#jquery #jquery-плагины
Вопрос:
У меня есть эта функция jquery —
function domail_slide_settings(obj)
{
$("div#" obj).toggle();
}
и когда я выполняю это так —
<a href="#" onclick="domail_slide_settings('toggle')" id="toggle" >Toggle</a>
Она не переключается! У кого-нибудь есть какие-либо идеи по этому поводу. Пожалуйста, дайте мне знать, это было бы большой помощью.
Заранее спасибо!
Комментарии:
1. вы отказываетесь от использования jquery, если все еще добавляете эту функцию в onclick. создайте внешний js и используйте $ («#toggle»).click()
2. как выглядит ваш
div
html-код?
Ответ №1:
попробуйте с
$("#" obj).toggle();
и укажите на элемент < div> вместо привязки
Комментарии:
1. как это
# obj
правильно? obj будет объектом привязки тега, поэтому префикс с#
не должен быть необходимым / работать2. Привет, ты можешь посмотреть этот jsfiddle и отредактировать его, потому что он не работает. Я не знаю причины. Возможно, вам следует знать. Пожалуйста, помогите мне. jsfiddle.net/NkXUv
3. Эй, это сработало. Но дело в том, что я хочу, чтобы это была функция, которую я мог бы использовать и с другими элементами. Есть несколько идей!
Ответ №2:
Атрибуты ID должны быть уникальными в HTML-документе, иначе вы столкнетесь с нежелательными побочными эффектами. Судя по всему, ваш <a>
элемент с обработчиком щелчков имеет тот же id
атрибут, что и div#toggle
элемент, который вы переключаете. Это почти наверняка было бы проблемой в некоторых браузерах.
Попробуйте изменить идентификатор вашего <a>
элемента, чтобы он был уникальным:
<a href="#" onclick="domail_slide_settings('toggle')" id="toggle_div" >Toggle</a>
Ответ №3:
Попробуйте это вместо:
<a href="#" id="toggle">Toggle</a>
<div id="div_toggle"></div>
и это:
$(function() {
$("#toggle").click(function(e){
e.preventDefault();
$("#div_" this.id).toggle();
// or $(this).next().toggle(); depending on your markup
});
});
Бьюсь об заклад, вы используете один и тот же идентификатор для вашего <a>
тега и вашей <div>
метки, чего делать не следует.
Ответ №4:
или вы можете попробовать
$('#' obj).parent().toggle();
^^
Ответ №5:
результатом вашей конкатенации строк — «div# toggle» — является выбор div с id toggle вместо вашего привязки.
Я думаю, вы имели в виду выбрать ее как:
$("#toggle").parent()
или, если вам действительно нужен сам якорь, используйте это:
$("#toggle")
В любом случае, поскольку ваша функция является обработчиком onclick (правда, напрямую через браузер, не используя jQuery event api), вы могли бы также сделать это:
function domail_slide_settings() {
$(this).parent().toggle()
// or this.toggle();
}
Комментарии:
1. Неправильно. Это действительно, но это не будет соответствовать его стихии.