여러 이벤트에 동일한 작업을 추가하는 방법을 찾고 있습니다.jQuery - 여러 이벤트에 동일한 작업 추가 및 바인딩
다음 작업을 #comid (선택 메뉴 임)에 지정했습니다.
$("#comid").change(function()
{
comid = $("#comid").val();
//alert(comid);
$('#com_photo').addClass('loading');
$('#com_photo').load('ajax.php?requestType=ajax&action=get_com_photo&comid=' + comid, function() {
$('#com_photo').removeClass('loading');
$('#com_photo img').hide();
$('#com_photo img').fadeIn(1000);
alert('Image Loaded.');
});
});
이제 위 코드가 잘 작동합니다. 사용자가 선택 메뉴에서 항목을 선택하면 변경 이벤트가 트리거되고 ajax 요청이 만들어지고 "Image Loaded"라는 경고 창이 표시됩니다.
그러나 사용자가 마우스를 사용하지 않고 대신 키보드 키/keydown을 사용하여 메뉴에서 선택하는 경우 동일한 동작을 트리거하고 싶습니다. 그것은 기본적으로 그 일을 희망하지만 그 doesnt는 사건이 될 것 그래서 내가 keyup 또는 keydown 이벤트에 대한 동일한 작업을 할당하고 싶지 않지만 (또는 복사/붙여 넣기) 같은 코드를 작성하고 싶지 않아요 다시. 내가 바인드()에 대해 알게 검색의 잠시 후
, 내가 같이 그것을 시도 :
$("#comid").bind('keyup',function(event){
$("#comid").trigger('change');
}
그것은 작동하지만, 내가의 keyup을 사용할 때, 난 두 번 말하는 경고 창이 표시 " 이미지로드 된 ", 그래서 그것은 두 번 요청을 만드는 것 같습니다 이후 원치 않는 동작을 찾으십시오.
내가 잘못하고있는 것이 있습니까? 또는 내가 성취하려고하는 것에 대한 더 나은 대안이 있습니까?
변경 이벤트는 키보드로 변경해야합니다. 내가 생각하는 차이점은 키보드를 사용하여 onblur를 변경하거나 사용자가 다른 곳을 클릭 할 때까지는 실행되지 않는다는 것입니다. – ChrisThompson
바로 그게 문제입니다. 그것에 대한 해결 방법이 있습니까? – Zubair1