저는 jQuery를 읽는 데 관심이 없었기 때문에 그냥 제 형편없는 자바스크립트를 사용하고 있었습니다. 오늘 함수를 작성할 때 사용해 보고 싶었지만, 이벤트를 등록하기 위해 바인딩을 사용했을 때 작동하지 않는 것을 발견했습니다. 🎜>
$("#txtStation").bind( "onpropertychange", GetStationLevel);
그런 다음 onclick 등을 시도했지만 jQuery의 API를 살펴볼 수밖에 없었습니다. jQuery API이지만 바인드 등록 이벤트가 켜져 있지 않은 것으로 나타났습니다.
변경 이벤트를 발견하고 시도해 보았습니다.
$ ("#txtStation").change(function(){alert('change')});
onchange와 마찬가지로 포커스를 잃을 때까지 활성화되지 않는 것으로 나타났습니다. . 나는 그것을 사용할 수 없습니다.
한번 해보자는 생각으로 onpropertychange 앞의 on을 삭제했습니다. 어쨌든 html 자체가 이벤트를 지원하는지 여부는 상관없으니 적어주시면 아마 될 것 같습니다. 일하다. 나는 그것이 작동할 것이라고 기대하지 않았습니다. IE에는 문제가 없습니다. 이제 크로스 브라우저에 대해 이야기하는 것이 아닙니다. Firefox에서 사용할 수 있어야 합니다.
Firefox에서 oninput 이벤트를 사용한다고 하는데, Oninput은 값을 입력할 때만 활성화됩니다. 즉, 단어를 입력할 때 발생합니다. , 이 단어로 시작합니다. 감지된 항목을 선택하면 입력이 활성화되지 않습니다.
현재로서는 좋은 해결책이 생각나지 않습니다. 이제 IE가 아니라고 판단되면 블러 이벤트를 등록하는 브라우저를 추가했습니다. 문제는 블러가 다른 컨트롤의 활성 포커스일 때입니다. txtStation 컨트롤 등록 방법은 옆에 드롭다운 목록을 채우는 것이므로 txtStation의 콘텐츠를 작성한 후 드롭다운 목록을 선택한 경우에만 블러가 트리거되도록 하는 것입니다. 두 번째 새로 고침이 발생하므로 큰 영향은 없습니다. 이지만 사용자의 첫 번째 클릭은 유효하지 않습니다. 혹시 좋은 방법 있으면 알려주세요.
코드
if( $.browser .msie)
{
$("#<%=txtStation.TextBoxID%>").bind("propertychange", GetStationLevel)
}
else
{
$("#<%=txtStation.TextBoxID%>").bind("blur", GetStationLevel)
}
앞면을 보면 제목에 아무것도 쓰여있지 않네요. 하하. 잊어버릴까 봐 적어둡니다.