동적 HTML에 의해 요소가 생성되었으므로 많은 함수 중 하나가 호출 할 때 함수를 호출하는 특정 href를 참조하고 싶습니다.함수에서 참조하는 (this)
<a href="javascript:Foo(this)">Link</a>
$ (this)를 참조하려고하면 작동하지 않습니다. 이 작업을 수행하는 또 다른 방법이 있습니까? 아니면 동적 ID를 만들어야합니까?
동적 HTML에 의해 요소가 생성되었으므로 많은 함수 중 하나가 호출 할 때 함수를 호출하는 특정 href를 참조하고 싶습니다.함수에서 참조하는 (this)
<a href="javascript:Foo(this)">Link</a>
$ (this)를 참조하려고하면 작동하지 않습니다. 이 작업을 수행하는 또 다른 방법이 있습니까? 아니면 동적 ID를 만들어야합니까?
<a href="javascript:Foo(this.href)">Link</a>
은 href를 전달하려는 경우 작동합니다.
그러나 HTML 코드의 onsomething 처리기는 jqueryish가 아닙니다. javascript:
의사 프로토콜 핸들러를 사용하여에
$('.mylink').live('click', function() {
// do whatever you want with this or $(this) or this.href or $(this).attr('href')
});
왜 jQuery를 꼭 필요하지 않은 방정식으로 가져 옵니까? 이것은 바닐라 자바 스크립트를 사용하는 것보다 훨씬 쉽고 이해하기 쉽습니다. –
@Sean Kinsey가 OP를 요청합니다 ... OP 태그 jQuery, 무엇을 기대합니까? ... : p – Reigel
OP가 OPTI를 더 잘 알지 못할 것으로 기대합니다 (이 경우 jQuery가 필요하다고 가정하는 것보다). 누가 대답을 더 잘하는지. –
없음 점 : 클래스와 설정을 라이브 핸들러를 당신의 연결을 지정 .
<a href="#" onclick="Foo(this);">Link</a>
대신
사용.
href
속성에 js 부품을 넣는 것은 좋지 않은 아이디어입니다. 가장 좋은 방법은 addEventListener
과 함께 처리기를 추가하는 것입니다. 여기서는 onclick
을 직접 설정할 수 있습니다.
<a href="#" onclick="Foo(event);">Link</a>
과 기능은 사용자가 링크를 클릭하면 그래서, Foo
이 paremeter으로 이벤트를 호출합니다
function Foo(e) {
var a = e.target || e.srcElement;
// TODO: stuff
if (e.preventDefault) {
e.preventDefault();
}
else {
return false;
}
}
처럼 될 것입니다. 이벤트 객체는 표준 브라우저에서 target
또는 IE에서 srcElement
으로 소스 요소에 대한 참조를가집니다. 끝에 preventDefault
/return false;
콤보는 브라우저가 #에 대한 링크를 "따라가는"것을 방지합니다.
편집 : 두 번째 생각에 많은 링크가 있기 때문에 jquery를 사용하여 핸들러를 추가하는 것이 좋습니다. 첫 번째 해결 방법은 여전히 좋지만 권장되는 방법이 좋습니다.
...
<a id="A5" href="#" >Link</a>
<a id="A6" href="#" >Link</a>
<a id="A7" href="#" >Link</a>
...
<script>
$('a').click(Foo);
</script>
'$ (this)'를 어디에서 어떻게 참조 할 수 있습니까? –