jqueryhashchange问题
我有一个简单的代码,有三种形式,一种是不起作用的,另一种是起作用的,但我想了解是什么导致两种方法起作用 请看一下简单的代码。 (它不能正常滑动) 而如果只附加了div id,那么它将正确地滑动。 (这是我的第一个问题,到底是什么导致它工作?仅仅改变ID是如何工作的?) 以另一种形式。jqueryhashchange问题,jquery,hashchange,Jquery,Hashchange,我有一个简单的代码,有三种形式,一种是不起作用的,另一种是起作用的,但我想了解是什么导致两种方法起作用 请看一下简单的代码。 (它不能正常滑动) 而如果只附加了div id,那么它将正确地滑动。 (这是我的第一个问题,到底是什么导致它工作?仅仅改变ID是如何工作的?) 以另一种形式。 (它也可以工作,所以这里是我的第二个问题,通过阻止默认行为,它是如何工作的……以及什么是破坏其工作的默认行为)对于第一个示例,它不工作的原因是因为您没有阻止链接的默认行为。当您使用散列标签(例如,#two)创建链接
(它也可以工作,所以这里是我的第二个问题,通过阻止默认行为,它是如何工作的……以及什么是破坏其工作的默认行为)对于第一个示例,它不工作的原因是因为您没有阻止链接的默认行为。当您使用散列标签(例如,
#two
)创建链接时,该链接会将页面移动到具有相同ID
参数的元素(例如,
)
因为在第一个示例中,您有一个指向#two
的链接,并且您有一个id相同的元素,
,它跳转到该元素,然后继续执行jQuery动画,使它看起来好像正在移动到#三个
第二个示例是href
属性值与任何HTML元素都不匹配,因此它可以正常工作
在第三个示例中,您正在阻止链接的默认行为,因此它可以正常工作
您可以使用第三个示例中的方法防止默认行为,也可以将return设置为false;单击事件结束时:
$( function () {
$(".clickIt a").click( function () {
var linked = $(this).attr("href");
var pos = $(linked).position();
$(".clickSlider").stop().animate({left: -pos.left,}, 500 );
return false;
});
});
希望我的解释是有意义的:)第一个示例中它不起作用的原因是因为您没有阻止链接的默认行为。当您使用散列标签(例如,
#two
)创建链接时,该链接会将页面移动到具有相同ID
参数的元素(例如,
)
因为在第一个示例中,您有一个指向#two
的链接,并且您有一个id相同的元素,
,它跳转到该元素,然后继续执行jQuery动画,使它看起来好像正在移动到#三个
第二个示例是href
属性值与任何HTML元素都不匹配,因此它可以正常工作
在第三个示例中,您正在阻止链接的默认行为,因此它可以正常工作
您可以使用第三个示例中的方法防止默认行为,也可以将return设置为false;单击事件结束时:
$( function () {
$(".clickIt a").click( function () {
var linked = $(this).attr("href");
var pos = $(linked).position();
$(".clickSlider").stop().animate({left: -pos.left,}, 500 );
return false;
});
});
希望我的解释有意义:)如果我理解正确,那么在我不工作的代码中实际上有两个动作。首先是jQuery的click函数,然后是jQuery本身,这就是为什么当我单击'two'时,它会移动到第三个div?如果你说的是假的话,那也行。。但它会停止移动或单击功能?你是对的。通过输入
return false
,它将停止
移动。如果我理解正确,那么在我不工作的代码中实际上有两个移动。首先是jQuery的click函数,然后是jQuery本身,这就是为什么当我单击'two'时,它会移动到第三个div?如果你说的是假的话,那也行。。但它会停止移动或单击功能?你是对的。通过输入return false
,它将停止
移动。