2012-02-07 6 views
-5

요소가 있고 자바 스크립트에서 함수를 "자동 클릭"하고 싶습니다. 작동합니다. 그러나 문제는 요소에 href = "# something"이 있고 URL을 변경하지 않는다는 것입니다. 해시가 에서 http://url.com/#something으로 변경되어야합니다.click()은 <a> 요소와 함께 작동하지 않습니다.

무엇이 잘못 되었나요? 이 코드는 매우 간단합니다

이 같은 것입니다 :

<ul id="menu"> 
<li><a href="#something" class="selected">click here</a></li> 
<li><a href="#something2">or click here</a></li> 
</ul> 

//javascript 
document.ready(function(){ 
$('#menu a').each(function(i){ 
    if($(this).attr('class') == 'selected'){ 
    $(this).click(); 
    $(this).css('color', 'yellow'); 
    } 
}); 
}); 

크리크() 색상 변경 때문에 작동하지만 해시 URL은 동일하게 유지됩니다.

감사합니다.

+4

어디 코드입니까? – Unknown

+4

코드를 게시하십시오 – Hadas

+0

코드를 볼 수없는 경우 도움을 드릴 수 없습니다 – thenetimp

답변

0

는이처럼 보이는 경우 : 그것은 작동해야

<a href='#target'>Click me</a> 

.

는 자동화 :

var target = getElementById('linkid').href; 
location.replace('url.html#' + target); 
+0

누군가가 클릭하면 작동합니다. OP는 ** 자동 ** 클릭 (예 : 어떤 방식 으로든 이벤트를 시뮬레이션)했다고 말했습니다. –

+0

True - 자바 스크립트 태그를 발견하여 자바 스크립트 솔루션을 추가했습니다. – CompanyDroneFromSector7G

+0

괜찮지 만 문제는 : 마우스로 클릭하면 해시가 변경되므로 자바 스크립트로 클릭하면 왜 변경되지 않는 이유는 무엇입니까? –

0

당신은, 예를 위치를 변경하고 수동으로이 작업을 수행 할 수 있습니다 해시하려면

document.location = $('#my-link').attr('href'); 
+1

jQuery가 언급되지 않았다는 것을 제외하면 ... – CompanyDroneFromSector7G

+0

그는 분명히 그의 코드 예제에서 jQuery를 사용하고 있으므로이 문제를 해결하기 위해이 코드를 사용하지 않을 이유가 없습니다. – RobinUS2

+0

ok - jQuery 코드가 답변 뒤에 추가 된 것을 제외하고 – CompanyDroneFromSector7G

1

당신은 코드에 하면 window.location.hash = 'something2'를 추가 할 수 있습니다. 그것은 단지 (#의 something2)

EDIT 해시 값을 변경합니다 나는이 일에 상당히 명확하지 않다지만

$(this).trigger('click'); 

이벤트가 즉 강제 트리거의

<ul id="menu"> 
<li><a href="#something" rel="something" class="selected">click here</a></li> 
<li><a href="#something2" rel="#something2">or click here</a></li> 
</ul> 


document.ready(function(){ 
$('#menu a').click(function(){ 
    if($(this).attr('class') != 'selected'){ 
    window.location.hash=$(this).attr('rel'); 
    $(this).css('color', 'yellow'); 
    } 
}); 
}); 
+0

좋아,하지만 : 마우스로 클릭하면 해시가 바뀌므로 자바 스크립트로 클릭하면 왜 바뀌지 않습니까? –

+0

'$ (this) .click();'을 할 필요가 없습니다. 그냥 window.location.hash = 'something2''로 대체하십시오 –

+0

위의 편집 된 게시물보기 –

0

링크를 클릭하여 탐색하십시오.

$(this).click(); 

은 JavaScript 이벤트를 DOM에 발생시킵니다. 현재이 코드는 그 이유 때문에 "자동 완성"되지 않습니다

그게 필요한가요?

관련 문제