Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript e、 preventDefault()以防止锚点跳转到不使用匿名函数的ID_Javascript_Jquery_Preventdefault - Fatal编程技术网

Javascript e、 preventDefault()以防止锚点跳转到不使用匿名函数的ID

Javascript e、 preventDefault()以防止锚点跳转到不使用匿名函数的ID,javascript,jquery,preventdefault,Javascript,Jquery,Preventdefault,我有以下jQuery/JS,当单击元素时会触发一些内容: $(tabs).click(function(e) { tabs.removeClass('active'); $(this).addClass('active'); $(tabIDs).removeClass('js_tab_area_show'); $($(this).attr('href')).addClass('js_tab_area_show'); e.preventDefault()

我有以下jQuery/JS,当单击元素时会触发一些内容:

$(tabs).click(function(e) {
    tabs.removeClass('active');
    $(this).addClass('active');

    $(tabIDs).removeClass('js_tab_area_show');
    $($(this).attr('href')).addClass('js_tab_area_show');

    e.preventDefault();
    alert('worked');
});
选项卡
此处已在函数之前初始化,并已选择我要针对的元素。以上所有的事情都已经开始起作用了。但是,我现在想禁用锚元素(即本例中的
选项卡
)滚动到包含在锚属性
href
中ID的元素。我试着四处看看,许多人建议
preventDefault()
防止滚动。然而,这对我来说并不管用。我主要看到的唯一区别是它们有一个命名函数,专门用于处理从click函数中调用的click事件。另一方面,我的也做了上述工作。
警报('worked')
确实触发,指示代码一直执行到结束。我在这里做错了什么?

href
修改 不要让JavaScript/jQuery或CSS过于复杂,而是执行以下操作


向下滚动
⇩
href
修改 不要让JavaScript/jQuery或CSS过于复杂,而是执行以下操作


向下滚动
⇩

在您的示例中,我看不出是什么代码在控制滚动。
事件。preventDefault
不用于在此处停止函数。如果您想在发出警报('worker')之前立即停止开火,则应该是
return false
@Kai,而不是我想停止函数在那里执行,然后再执行。我希望它能防止
a
滚动到
div
,该div与
a
href
中包含的id相同。在这里查看更多信息,这就是我找到的“建议”的意思:@WealthyPlayer,因此请尝试在结尾处
返回false
:D.@Kai我放置
返回false
alert('worked')
之后,它仍然会滚动到
div
元素。在您的示例中,我看不到是什么代码在控制滚动。
事件。preventDefault
不用于立即停止函数。如果您想在发出警报('worker')之前立即停止开火,则应该是
return false
@Kai,而不是我想停止函数在那里执行,然后再执行。我希望它能防止
a
滚动到
div
,该div与
a
href
中包含的id相同。在这里查看更多信息,这就是我找到的“建议”的意思:@WealthyPlayer,因此请尝试在结尾处
返回false
:D.@Kai我放置
返回false
alert('worked')
之后,它仍然滚动到
div
元素。如果是这种情况,我认为使用
a
毫无意义。诚然,我可能不应该使用
a
,因为我正在实现
tab
;如果将不同的概念应用到我的处理程序中,任何其他元素(如
div
)也可以正常工作。还有更多的问题:1。我是否应该将我的
a
更改为
div
,这意味着调整我的JS概念2.如果我仍然想使用我上面的代码(
a
包含指向目标元素的
href
),因为我的JS代码在很大程度上依赖于目标
a
href
,该怎么办?是否可以禁用JS/jQuery中的滚动/跳转功能?1。不,除非你有空。2.取决于hrefs是否与
:target
选择器一起使用,如果是这样,我会更改它,因为它不是非常灵活,也不是很有用。3.是的,可以禁用滚动。。。您是否尝试过放置
e.preventDefault()。我总是这样做并且
e.preventDefault()从未让我失望过。1。好的,谢谢。2.不,他们不是。我只是在运行一个
for
循环,以获取
a
s的所有
href
,并将它们保存在上面的
tabid
中,我将用于下一个函数。3.是的,这是这里的主要问题。在上面的代码中,我已经使用了
e.preventDefault(),请看一看,尽管是在代码的最后第三行。不过这不要紧。我还尝试了
返回false正如上面对我的问题的评论所建议的。“我已经使用了e.preventDefault();,请看一看,尽管是在代码的最后第三行。但这不重要。”顺序在编程的许多方面都很重要。在处理事件时,事件触发捕获传播等有一个顺序。我会测试您的代码,但我也需要HTML。您好,我刚刚将
e.preventDefault()
作为我的
单击
处理函数中要执行的第一行。还是不行。如果是这样的话,我认为使用
a
毫无意义。诚然,我可能不应该使用
a
,因为我正在实现
tab
;如果将不同的概念应用到我的处理程序中,任何其他元素(如
div
)也可以正常工作。还有更多的问题:1。我是否应该将我的
a
更改为
div
,这意味着调整我的JS概念2.如果我仍然想使用我上面的代码(
a
包含指向目标元素的
href
),因为我的JS代码在很大程度上依赖于目标
a
href
,该怎么办?是否可以禁用JS/jQuery中的滚动/跳转功能?1。不,除非你有空。2.取决于hrefs是否与
:target
选择器一起使用,如果是这样,我会更改它,因为它不是非常灵活,也不是很有用。3.是的,可以禁用滚动。。。您是否尝试过放置
e.preventDefault()在fu中的第一行
<a href="#/">I DON't JUMP</a>