input type = image – onclick(),将触发其事件,但在jquery中的函数不能很好

(我想这可能是两个post – 两个问题……所以如果你对它发表评论……我将把它们分开)

主要问题是:

我怎样才能为按钮设置图像背景……简单又合适?

我想现在我可以肯定这些事实:

因为我将图像设置为按钮背景时遇到“小问题”,…我想,好吧,如果用图像背景设置很困难,为什么不这样做,只需设置onclick事件在

我是对的(…差不多),因为是的,在image类型上设置点击事件很容易,也可以设置src ..而不是按钮的background-image …至少对我来说,它是。

问题是,在当前项目中),使用jQuery-UI dialog - ok, cancel

似乎问题是图像类型,Posts back(?!),所以对话框消失了

和按钮不会导致这个缺陷。

我尝试用一​​个断点来调试它,在vs2010中它都可以用点击事件,因为它们都达到了“function输入”……所以对于图像类型…我只能注意到,如同我可以看到<- Back button ,从disabled切换到可点击,这意味着它确实回发了。

并且按钮不会发生这种情况,因为您将鼠标hover在按钮上没有任何乐趣,并且使用图像可以在状态栏中看到链接。

所以在按钮 – “转换”成图像之间存在差异(真实的),而不是图像变成“按钮”(用Click()事件附加它),

所以我想知道的是:(只有这次我被允许使用这个post才能得到两个答案)

为什么图像回复? 我可以禁用此操作吗? …它不是服务器控件。 这是你应该知道的事情,并且假设发生了什么?

再次,如果它是偏离主题我会移动这个问题,我需要一个propper方式来设置按钮的背景图像,除非有一个解决方法的行为。

我不确定为什么图像类型输入元素的行为与按钮类型不同,但如果我是你,我会一起避免它。 如果你想定制你的按钮(看起来你是),我建议使用div并通过jquery / javascript控制用户交互。

演示: http : //jsfiddle.net/jrb9249/BvTD5/

HTML:

  

Click Me!

使用Javascript:

 $('.div_button').click(function(){ alert('Run a postback via JS'); }); 

CSS:

 .div_button { border: solid 1px gray; width:80px; height:25px; background:#A3A3A3; text-align:center; margin:0 auto; margin-top:50px; } .div_button:hover { border: solid 1px blue; background:#A1A1A1; cursor:pointer; } 

要添加一些最后润色来完成按钮外观,只需使用此处的jquery圆角插件添加一些圆角。 如果您需要使用此控件进行回发(它看起来不像是asp.net控件,所以我认为这不是您正在做的事情),您可以使用此处描述的__Postback技术。

我希望这对你的网站有所帮助,祝你好运。


更新:自从这篇文章以来,我开始在标签中包含我的div标签,以创建div之外的超链接。 然后,您可以将自定义单击事件应用于元素,并可以更好地控制您创建的按钮。