Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.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 使用jquery';这';压缩代码_Javascript_Jquery_Html - Fatal编程技术网

Javascript 使用jquery';这';压缩代码

Javascript 使用jquery';这';压缩代码,javascript,jquery,html,Javascript,Jquery,Html,我尽量不提问题,但我不知道什么应该很容易。我正在为practice briannabaldwinphotography.com建立一个网站。我只是想压缩它,这样我就可以点击一个锚,它会平滑地滚动到一个id与锚同名的。例如:“about”li主播的href为#section_three,将滚动到id为section_three的。我尝试了10种不同的变体,但都不适合我。我要找的是$(this).attr(“href”).offest().top}…等等。这是我想浓缩的代码。谢谢 $(functio

我尽量不提问题,但我不知道什么应该很容易。我正在为practice briannabaldwinphotography.com建立一个网站。我只是想压缩它,这样我就可以点击一个锚,它会平滑地滚动到一个id与锚同名的
。例如:“about”li主播的href为
#section_three
,将滚动到id为
section_three
。我尝试了10种不同的变体,但都不适合我。我要找的是
$(this).attr(“href”).offest().top}
…等等。这是我想浓缩的代码。谢谢

$(function() {
    $("[href='#section_three']").on("click", function() {
        $("html body").animate({"scrollTop":$("#section_three").offset().top}, 1000);
        return false;

    });
    $("[href='#section_two']").on("click", function() {
        $("html body").animate({"scrollTop":$("#section_two").offset().top}, 1000);
        return false;


    });
    $("[href='#section_four']").on("click", function() {
        $("html body").animate({"scrollTop":$("#section_four").offset().top}, 1000);
        return false;


    });
    $("[href='#section_one']").on("click", function() {
        $("html body").animate({"scrollTop":$("#section_one").offset().top}, 1000);
        return false;


    });

});
如果使用,则可以获取所有元素,且href以
“#section_quot
开头,将处理程序绑定到这些元素,然后在处理程序中使用
this.href
获取单击的特定元素的href:

$(function() {
    $("[href^='#section_']").on("click", function() {
        $("html body").animate({"scrollTop" : $(this.href).offset().top}, 1000);
        return false;
    });
});

请注意,
this.href
的工作与
$(this.attr(“href”)
的工作相同,但效率更高:无需创建jQuery对象来访问您可以直接访问的元素属性。

因为在每种情况下
href
都与目标元素匹配,所以它相当简单

$("[href^='#section']").on("click", function() {
        var targetSelector = $(this).attr('href');
        $("html body").animate({"scrollTop":$(targetSelector).offset().top}, 1000);
        return false;   
});

如果这些元素通过父类和标记具有公共类或更好的路径,则可以提高初始选择器性能

“我尽量不提问”-为什么,只需提问…:)顺便说一句,$(this.attr('href')应该有帮助。。。我想,‘a’选择器(没有看到你的HTML)……非常有效,谢谢。我没有想到要尝试$($(this.attr('href')).offset()。。。。。。。因为这不起作用$(this.attr('href')。实际上
this.href
返回带有协议、域等的完整绝对url
this.hash
可以工作,但使用“attribute start with”并使用this.href而不是创建jquery对象是个好主意。但代码似乎不起作用。。。。但没关系,另一个评论者也有类似的代码。谢谢。this.hash确实使第二个评论者的代码起作用。