当前位置:  开发笔记 > 编程语言 > 正文

jQuery DIV点击,带锚点

如何解决《jQueryDIV点击,带锚点》经验,为你挑选了3个好方法。

为了使点击式div,我做:

blah blah

然后

$("div.clickable").click(
function()
{
    window.location = $(this).attr("url");
});

我不知道这是否是最好的方式,但除了一个问题外,它与我完美配合:如果div包含可点击的元素,例如,则用户点击超链接,调用超链接和div可点击

当锚标记引用javascript AJAX函数时,这尤其是一个问题,该函数执行AJAX函数遵循div的'url'属性中的链接.

无论如何围绕这个?



1> Parand..:

如果从函数返回"false",它将停止事件冒泡,因此只会触发第一个事件处理程序(即,您的锚点不会看到点击).

$("div.clickable").click(
function()
{
    window.location = $(this).attr("url");
    return false;
});

有关return false与preventDefault的详细信息,请参阅event.preventDefault()与return false.


使用preventDefault(),不返回false!

2> Sergey Ilins..:

$("div.clickable").click( function(event) { window.location = $(this).attr("url"); event.preventDefault(); });



3> 小智..:

使用自定义url属性会使HTML无效.虽然这可能不是一个大问题,但给定的例子既不可访问.不适用于键盘导航,也不适用于JavaScript关闭(或被其他脚本阻止)的情况.即使谷歌也不会找到位于指定网址的网页,至少不会通过这条路线.

尽管如此,这很容易实现.只要确保div中有一个指向url的常规链接.使用JavaScript/jQuery,您可以向div添加一个onclick,重定向到链接的href属性指定的位置.现在,当JavaScript不起作用时,链接仍然可以,并且它甚至可以在使用键盘导航时捕获焦点(并且您不需要自定义属性,因此您的HTML可以有效).


我前段时间写了一个jQuery插件.它还将classNames添加到div(或任何其他你想要点击的元素)和链接,这样当div确实可以点击时你可以用CSS改变它们的外观.它甚至添加了可用于指定悬停和焦点样式的classNames.

你需要做的就是指定你想要点击的元素并调用他们的clickable()方法:在你的情况下,这将是 $("div.clickable).clickable();

有关下载+文档,请参阅插件页面:jQuery:clickable - jLix

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有