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

Javascript 使用jquery逐个链接启用默认行为

Javascript 使用jquery逐个链接启用默认行为,javascript,jquery,Javascript,Jquery,我是一个html css设计类型,对jquery不太熟悉。我继承了一个禁用链接默认行为的站点,我可以看到以下代码: $('a').click(function(event) { event.preventDefault(); var locationHref = window.location.href; var elementClick = $(this).attr("href"); var destination = $(elementClick).offs

我是一个html css设计类型,对jquery不太熟悉。我继承了一个禁用链接默认行为的站点,我可以看到以下代码:

$('a').click(function(event) {
    event.preventDefault();

    var locationHref = window.location.href;
    var elementClick = $(this).attr("href");
    var destination = $(elementClick).offset().top;

    $("html:not(:animated),body:not(:animated)").animate({ scrollTop: destination}, 1000, function() {
        window.location.hash = elementClick
    });
      return false;
我需要添加正常的链接到这个一页的网站,而不弄乱这个代码(它启用视差滚动)。有没有办法我可以做这个链接的链接


顺便说一句,我在这里看到了解决方案,但我必须承认,我并不完全理解它们。谢谢。

不知道为什么有人会用这种方式禁用页面上的所有链接。不幸的是,您继承了这样的代码。我不确定你是说你不能碰那个密码,还是只是不想碰

如果是前者,您有两个选择:

1) 取消绑定某些链接的此单击事件。例如,如果容器中有链接,
#container
,或者所有链接都有某个类,
.class
,则可以执行以下操作:

$('#container a').off('click');
$('a.class').off('click');
这些链接将不再包含继承的单击事件处理程序

唯一的问题是您解除绑定到此类链接的所有单击事件处理程序的绑定。由于继承的事件没有名称空间,这是不可避免的。第二个选择是

2) 设置第二个单击事件处理程序,通过将用户转发到链接的HREF,绕过继承处理程序的默认操作预防:

$('a').on('click', function() { location.href = $(this).attr('href'); });

给这些特殊链接一个
数据donthandle=“true”
属性怎么样。然后,在jQuery中检查该属性。如果属性存在且为false,只需
返回true位于事件处理程序的开头

这将节省您通过javascript查看和禁用onclick的时间,正如前面所建议的那样

$('a').click(function(event) {
    if($(this).attr('data-donthandle')) {
        return true;
    }
    else {
       event.preventDefault();
       //code here for handling clicks
       alert('Stopped.');

       return false;
    }
    });​

如果我理解了,您可以将$('a')替换为,例如$('myclass')。单击。。。并在链接处添加一个类,你想激活上面的代码,另一个应该是正常的链接…谢谢你,优雅而简单,结束了我日益头疼的问题。该站点非常小,因此实施起来没有任何麻烦。非常感谢Alex。或者将其翻转过来,在您不想触发的项目中添加一个类,然后使用
$('a:not(.myclass')。单击