Я знаю, что вы уже приняли ответ, который исправил две проблемы с вашим кодом (строка без кавычек и тот факт, что ваша slide()
функция ожидала объект jQuery, а не строку), но так как вы упомянули это:
Я не хочу создавать новую функцию для скольжения для каждой части сайта
Вместо кодирования onclick
для каждого элемента, который вы хотите сдвинуть, где вы должны индивидуально указать идентификатор элемента, как в вашем текущем коде:
onclick="slide($('#elementid'));"
Ваш код будет намного проще и проще в обслуживании, если вы вместо этого назначите общий класс всем элементам (независимо от их типа), по которым вы хотите перемещаться, например:
<h1 class="slideMe">A heading</h1>
<div class="slideMe">A div</div>
<h2 class="slideMe otherclass">Note elements can have multiple classes</h2>
<p class="slideMe">And so on and so forth</p>
Потому что тогда вы можете применить функциональность слайдов к всем из них, написав одну строку кода, чтобы назначить обработчик кликов на основе этого класса. Должен быть в document.ready (или в конце тела):
$(document).ready(function() {
$(".slideMe").click(function() {
$(this).slideToggle("slow");
});
});
Обратите внимание, что это чуть дольше, чем ваша существующая функция slide()
. При нажатии на отдельный элемент он будет скользить. Легко.
Также обратите внимание, что если вы затем добавляете дополнительные элементы, которые должны скользить, вам не нужно присваивать им атрибут id
, а затем сопоставлять onclick
для вызова slide()
с этим id
, вы просто добавьте класс «slideMe», и это произойдет автоматически.