나는 div
요소와 조정 된 링크에 ID를 제공하는 jQuery로 JS 유틸리티를 만들었습니다.Javascript - Jquery on the fly id 검색
예 :
div id="container"
div id="1"
div id="2"
div id="links"
a name="1"
a name="2"
그래서 페이지가로드되면, 내가 처음 링크를 클릭 (이름 = "1") 첫째 DIV 보여줄 예정이다 (아이디 = "1").
하지만 내 ID가 즉시 만들어지기 때문에 함수가 올바른 div를 찾지 못하는 것 같습니다.
여기 내 기능입니다 : 내가 jQuery를, 기본적인 HTML과 CSS를 사용하고
$("#video_grid .grid_item a").each(
function(i) {
/* FINDING 'A' AND GIVING THEM NAME */
$(this).addClass("item" + (i + 1));
$(this).attr("name", "#" + (i + 1));
/* BACKGROUND */
$(this).css("background-image",
"url(images/visu_" + (i + 1) + ".jpg");
$(this).hover(
function() {
$(this).css("background-image",
"url(images/visu_hover_" + (i + 1) + ".jpg")
},
function() {
$(this).css("background-image",
"url(images/visu_" + (i + 1) + ".jpg");
});
});
/* FINDING DIV GIVING THEM IDS */
$("#capsule_player > div").each(function(i) {
$(this).addClass("item#" + (i + 1));
});
/* HERE'S THE PROBLEM */
$("#capsule_player div:first-child").css("display", "block");
/* appel la div correspondante avec la video */
$(".grid_item a").live("click", function() {
var divname = $(this).attr("name");
alert(divname);
/* WORK FINE TIL HERE */
/* THIS IS THE REAL PROBLEM */
$(".item" + divname).show("slow").siblings().hide("slow");
/* ALERT IF YOU FIND THE DIV WITH THE ID, DOES NOT WORK */
if ($(".item" + divname)[0]) {
alert('tonton');
}
});
및 PHP는 허용되지 않습니다.
ID, 이름 및 클래스의 정말 신비한 인터 믹스가있는 것 같습니다. 클래스를 구성 요소별로 그룹화하고, ID는 페이지의 고유 한 요소를 식별합니다. 이름은 양식 요소 용입니다. 어느 누구도 숫자로 시작하지 마십시오. 번호 매기기를 위해 당신은'data-index = "number"'와 같은 당신 자신의 분리 된 속성을 사용할 수 있습니다. 일단 그렇게하면 코드가 더 명확하고 디버그하기 쉬워집니다. – Armatus
'ID'는 실제로 클래스이므로 'addClass'메소드 이름입니다. 게다가, 나는 Armatus와 동의한다. 마지막으로, 내가 게시 한 코드에서 문제를 볼 수 없으며, 문제를 보여주는 HTML * 및 * JS의 최소 예제를 시도해 볼 수 있습니까? – Jochem