Jquery 除了使用<;a href="#&引用&燃气轮机;元素</a>;

Jquery 除了使用<;a href="#&引用&燃气轮机;元素</a>;,jquery,html,Jquery,Html,我通常只使用#将事件附加到没有url的可单击元素上,但我考虑过它,觉得它有点粗糙。有更好的方法吗 <a href="#"><img src="images/click_here.gif"/></a> $('a').click(function(event){ alert('you clicked on the click button') }); $('a')。单击(函数(事件){ 警报('您单击了“单击”按钮') }); 我最喜欢的技巧是将单

我通常只使用#将事件附加到没有url的可单击元素上,但我考虑过它,觉得它有点粗糙。有更好的方法吗

<a href="#"><img src="images/click_here.gif"/></a> 

$('a').click(function(event){
    alert('you clicked on the click button')
});

$('a')。单击(函数(事件){
警报('您单击了“单击”按钮')
});

我最喜欢的技巧是将单击处理程序附加到任何旧元素上,然后使用CSS在其上设置
光标:指针
,使其看起来可以单击。如果您添加了
:hover
:active
状态以真正提示用户,则可获得额外积分

HTML示例:

<img src="images/click_here.gif" id="click-here-button" />
CSS:


如果您使用jQuery,我认为任何东西都可以单击:

$('elementToClick').click(
    function(){
        alert('you clicked on a clickable thing');
    });
您可以使用
hover()
方法模拟超链接外观:

$('elementToClick').hover(
    function(){
       $(this).addClass('clickable'); /* or
       $(this).css('cursor','pointer'); */
    },
    function(){
       $(this).removeClass('clickable'); /* or
       $(this).css('cursor','auto'); */
    });

   $('elementToClick).click(
       function(){
           alert('you clicked the clickable thing');
           if (this.tagName == 'A') {
              return false;
           }
           });
使用CSS:

.clickable {
    cursor: pointer;
}
使用javascript:void(0);而不是“#”



这样就不会在URL中添加额外的“#”。

取决于上下文。如果单击操作应该链接到某个地方(即使您拦截了该操作),那么这就是
的意思。对它感到高兴。如果您正在触发其他一些“非导航”功能,我只需在
上放置一个单击处理程序,并在CSS中设置一个适当的光标。老实说,是个人选择。

这个怎么样:

<input type="image" src="http://www.google.com/images/logos/ps_logo2.png">


然后,只需添加一个事件处理程序,您就成功了。:)

我认为这是最好的方法,因为首先,只有
s意味着可以点击…
意味着“超文本锚”。而
href
表示“超文本引用”。这两个选项都不能正确地与
一起使用。是否使某些内容可以单击?但是默认情况下,每个元素都可以单击(意思是:你可以在页面上的任何元素上附加一个单击处理程序)。这是一个好方法,但是一些探索者(感叹老IE)只会添加
:hover
CSS到
sYeah,如果你有比谷歌更特殊的需求,需要支持IE6,那么
)为什么?页面上只有一个
单击此处.gif
按钮。大概我不希望每个可点击的元素都有相同的行为。(我确实编辑了我的答案,以使用
单击此处按钮
作为id,而不是
可单击
,因此这可能会使意图更加清晰。)我在制作可单击的东西时一直这样做。一个箭头光标和一个悬停效果,它是可点击的!酷,我不知道css属性。非常有用的信息。但是,当用户Ctrl+单击或右键单击并选择“在新选项卡中打开”时,链接将断开。
javascript:
URL是有害的。“#”是好的和恰当的;在
单击处理程序中的
event.preventDefault()
可以防止任何事情发生。@Šime好的,这是真的,是的。:)是的,使用
s并拦截它们确实很有意义,特别是如果您可以链接到适当的回退非JavaScript页面(例如,手动加载而不是使用Ajax).我还喜欢使用
之类的东西,然后截取它,并在选择要显示的对话框时使用
href
属性的值。。。没有像我的Ajax与手动加载示例那样帮助用户体验,但它“感觉不错”。@Domenic:是的,是的。我倾向于根据项目、用例和前一天晚上的睡眠情况在不同的方法之间切换
.clickable {
    cursor: pointer;
}
<a href="javascript:void(0);"><img src="images/click_here.gif"/></a> 
<input type="image" src="http://www.google.com/images/logos/ps_logo2.png">