click() 不适用于 元素

发布于 2025-01-03 10:17:08 字数 673 浏览 1 评论 0原文

我有一个元素,并且具有 javascript 中的函数,我希望它“自动单击”,并且它可以工作。但问题是该元素有 href="#something" 并且它不会更改 url。 它应该将哈希值从 http://url.com 更改为 http://url.com/#something

有什么问题吗?

代码非常简单,如下所示:

<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');
  }
 });
});

click() 起作用是因为颜色发生了变化,但 url 的哈希值保持不变。

谢谢大家。

I have an element and with a function in javascript i want it to "auto click", and it works. But the problem is that the element has href="#something" and it doesn't change the url.
It should change the hash from http://url.com to http://url.com/#something

What is wrong?

The code is very simple is something like this:

<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');
  }
 });
});

The click() works because color change, but the hash the url stays the same.

Thank you all.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

余生共白头 2025-01-10 10:17:08

您可以将 window.location.hash='something2' 添加到代码中。它只会更改哈希值 (#something2)

编辑

<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');
  }
 });
});

You can add window.location.hash='something2' to the code. It will only change the hash value (#something2)

EDIT

<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');
  }
 });
});
云裳 2025-01-10 10:17:08

如果您想更改位置和哈希值,您也可以手动执行此操作,例如

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

If you want to change the location AND hash you can also do this manually, e.g.

document.location = $('#my-link').attr('href');
女皇必胜 2025-01-10 10:17:08

我对此不是很清楚,但它是

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

为了触发事件,即强制链接导航。

$(this).click();

只会将 JavaScript 事件触发到 DOM 中。目前,由于这个原因,此代码不会“自动点击”,

这是所需要的吗?

I'm not hugely clear on this one but it's

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

to trigger the event i.e. force the link to navigate.

$(this).click();

will just fire the JavaScript event into the DOM. Currently this code won't "autoclick" for that reason

Is that what's required?

想念有你 2025-01-10 10:17:08

如果它看起来像这样:

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

它应该可以工作。

自动化:

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

if it looks like this:

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

It should work.

Automated:

var target = getElementById('linkid').href;
location.replace('url.html#' + target);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文