基本上,我想要一個函數根據點擊哪個單獨操作多個元素。JS/jQuery - 我如何從一個元素ID的數字,並將其用作函數中的變量?
我有這些功能是做同樣的事情3:
$("#morelink1, #pic1").click(function() {
var imgHeight = $(".pic").height();
var image = $('#more1').parent('.content').siblings(
'.image');
if ($('#more1').is(":visible")) {
$("#more1").slideUp(200, "linear");
image.height(contHeight);
showtext1();
$("#closemore1").hide();
} else {
$("#more1").slideDown(200, "linear");
image.height(imgHeight);
hidebutton1();
hidetext1();
}
});
正如你所看到的,我用這個功能全部結束在「1」工作的ID名稱我爲2和3複製了此功能。
不必複製,必須有一種方法可以從#morelink1
中提取數字,將其設置爲變量,然後將該數字附加到函數中的ID。
我想有這樣的:
var NUMBER = [get the number from the ID of the element that was clicked];
$("#morelink + NUMBER, #pic + NUMBER").click(function() {
我也有內置該功能的功能 - showtext1()
,hidebutton1()
和hidetext1()
。這些也是重複的,只是改變了數字。我希望能夠對這個函數中的人做同樣的事情。會不會像showtext(NUMBER)
?
我環顧四周,似乎無法想出辦法做到這一點。
是否有其他方法可以做到這一點,比如將數字傳遞給函數?
感謝您的回覆。這看起來像我所需要的。我確實需要價值,因爲這些就像「多讀」鏈接,所以我不希望所有的項目都擴大。我使用'$('。more')。'(function()'。類似於我想要做的事情,我會碰到一個類似於我想要做的事情的代碼文件: – AdamDallas
@AdamDallas:如果點擊處理程序中的任何給定操作的目標都可以在DOM中相對於點擊元素進行標識,您可能根本不需要解析該值。通常像'$(this).closest('some common parent element')這樣的東西。發現('目標元素')'會做的伎倆。這取決於你,這將更容易維護。 – David
@AdamDallas:究竟是一個更好的方法?您通常不希望在循環中創建*點擊處理程序。你可以使用類來識別你的元素,這很好。但不要用循環來考慮這一點。只需使用選擇器來識別您可點擊的元素,然後使用單擊處理程序來響應該事件。 – David