Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.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中的URL_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 拆下'#';从JQuery中的URL

Javascript 拆下'#';从JQuery中的URL,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我已经编写了一个脚本,将#从URL中删除并滚动到特定的div。它适用于正常的URL,如 10.0.1.22/dev/pg/blog/all/ 但它不适用于像这样的URL 10.0.1.22/dev/pg/search/?tag=a&entity_subtype=blog&entity_type=object&search_type=entities#39531 它没有从URL中删除#&而且滚动也不起作用 剧本 jQuery(document).ready(fu

我已经编写了一个脚本,将
#
从URL中删除并滚动到特定的div。它适用于正常的URL,如

10.0.1.22/dev/pg/blog/all/
但它不适用于像这样的URL

10.0.1.22/dev/pg/search/?tag=a&entity_subtype=blog&entity_type=object&search_type=entities#39531
它没有从URL中删除
#
&而且滚动也不起作用

剧本

    jQuery(document).ready(function($) {

    $(".full_view_btn").live('click', function(){
        var divid = $(this).attr('data-id');
        var long_desc = "#inner_descrip" + divid;   
        var short_desc = "#listing_desp" + divid;
        var shw_mre_btn = "#full_view" + divid;

        if($(long_desc).is( ':hidden' )){
            $('.long_desc').hide();
            $('.short_desc').show();
            $(long_desc).show();
            $(short_desc).hide();
            $('.full_view_btn').text('Show more');
            $(shw_mre_btn).text('Show less');
          } else{
              $(long_desc).hide();
              $(short_desc).show();
              $(shw_mre_btn).text('Show more');
          }

        if (location.pathname.replace('/^\//','') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
          var target = $(this.hash);
          target = target.length ? target : $('[id=' + this.hash.slice(1) +']');
          if (target.length) {
            $('html,body').animate({
              scrollTop: target.offset().top-60
            }, 500);
                target.parent().find('#highlight_div'+divid).css("box-shadow", "0 0 2px 1px #cccccc");
            setTimeout(function() {
                target.parent().find('#highlight_div'+divid).css("box-shadow", "none");
            }, 1000);
            return false;
          }
        }

    });

});

你们知道怎么解决这个问题吗?我找不到错误在哪里?

您不能使用jQuery对象包装哈希字符串,否则将得到空数组,因为jQuery的输入参数应该是选择器。您需要将目标作为由jQuery对象包装的DOM元素,以使用像offset这样的方法

因此,您必须将目标更改为或任何应该是向下滚动的目标

var target = $(this.target);

请创建JSFIDLE。您使用的是哪种浏览器?@ssut All browser相同的问题…@PratikJoshi这是我在这里显示的一小部分…页面是一个列表,因此无法在中显示fiddle@RIADev,在if()之前张贴代码,因此,它将使
taget.length
变得更合理,它的说法是
0
,但在我的问题中,它对小URL的工作方式??如果目标值设置为0,则不会计算以下条件,并且简单地跳过是的,我知道…&我尝试了您的解决方案它也不工作…是的,在console.log(目标)中正在显示选择器idit的hart以猜测正确的行为,您可以发布整个吗page@Martin... 我修复了它脚本是101%正确…我只是改变了我的父div然后它的工作非常适合你的tym。。