다음 jquery 코드를 사용하여 마우스로 가리키고있는 테이블 행에 대해서만 컨텍스트 삭제 버튼을 표시합니다. 이것은 작동하지만 js / ajax로 즉시 추가 된 행에는 적용되지 않습니다 …
라이브 이벤트로이 작업을 수행 할 수있는 방법이 있습니까?
$("table tr").hover(
function () {},
function () {}
);
답변
jQuery 1.4.1은 이제 live () 이벤트에 대해 “호버”를 지원하지만 하나의 이벤트 핸들러 함수 만 사용합니다.
$("table tr").live("hover",
function () {
});
또는 mouseenter 용과 mouseleave 용의 두 가지 기능을 제공 할 수 있습니다.
$("table tr").live({
mouseenter: function () {
},
mouseleave: function () {
}
});
답변
$('.hoverme').live('mouseover mouseout', function(event) {
if (event.type == 'mouseover') {
// do something on mouseover
} else {
// do something on mouseout
}
});
답변
.live()
jQuery 1.7부터 사용되지 않습니다.
.on()
대신 사용하고 자손 선택기를 지정 하십시오.
$("table").on({
mouseenter: function(){
$(this).addClass("inside");
},
mouseleave: function(){
$(this).removeClass("inside");
}
}, "tr"); // descendant selector
답변
jQuery 1.4.1부터는 호버 이벤트가 작동합니다 live()
. 기본적으로 mouseenter 및 mouseleave 이벤트에 바인딩되며 1.4.1 이전 버전에서도 수행 할 수 있습니다.
$("table tr")
.mouseenter(function() {
// Hover starts
})
.mouseleave(function() {
// Hover ends
});
이것은 두 개의 바인딩이 필요하지만 잘 작동합니다.
답변
이 코드는 작동합니다 :
$(".ui-button-text").live(
'hover',
function (ev) {
if (ev.type == 'mouseover') {
$(this).addClass("ui-state-hover");
}
if (ev.type == 'mouseout') {
$(this).removeClass("ui-state-hover");
}
});
답변
경고 : 호버의 라이브 버전에서는 성능이 크게 저하됩니다. IE8의 큰 페이지에서 특히 눈에.니다.
AJAX와 함께 여러 수준의 메뉴를로드하는 프로젝트를 진행하고 있습니다 (이유에는 이유가 있습니다). 어쨌든, 나는 크롬에서 잘 작동하는 호버에 라이브 방법을 사용했습니다 (IE9는 괜찮 았지만 훌륭하지는 않았습니다). 그러나 IE8에서는 메뉴가 느려졌을뿐만 아니라 메뉴가 떨어지기 전에 몇 초 동안 마우스를 가져 가야했지만 스크롤 및 간단한 확인란 확인을 포함하여 페이지의 모든 것이 느려졌습니다.
로드 된 이벤트를 직접 바인딩하면 적절한 성능이 얻어졌습니다.