二次点击的绑定和解绑问题
有我的代码:
Jquery
$(function() {
$("#evtTarget").bind("mouseover",highlighted);
$("#evtTarget").bind("mouseleave",highlighted);
$("#evtTarget").bind("click",function(){
$("#evtTarget").unbind("mouseover",highlighted);
$("#evtTarget").unbind("mouseleave",highlighted);
$("#evtTarget").html("Off.Click for On.");
});
});
function highlighted(evt){
$("#evtTarget").toggleClass("highlighted");
}
Html
<h1>Binding Event Example</h1>
<div id="evtTarget" class="normal">On. Click for Off.</div>
Css
normal {
width:300px;
height:200px;
background-color:red;
font-size:18pt;
color:black;
}
.highlighted {
background-color:white;
}
如果您将鼠标悬停在 evtTarget id 段落 highligt 上。如果您单击 evtTarget id 突出显示将关闭。
但我想如果用户点击第二次突出显示。
我该怎么做?
There are my codes:
Jquery
$(function() {
$("#evtTarget").bind("mouseover",highlighted);
$("#evtTarget").bind("mouseleave",highlighted);
$("#evtTarget").bind("click",function(){
$("#evtTarget").unbind("mouseover",highlighted);
$("#evtTarget").unbind("mouseleave",highlighted);
$("#evtTarget").html("Off.Click for On.");
});
});
function highlighted(evt){
$("#evtTarget").toggleClass("highlighted");
}
Html
<h1>Binding Event Example</h1>
<div id="evtTarget" class="normal">On. Click for Off.</div>
Css
normal {
width:300px;
height:200px;
background-color:red;
font-size:18pt;
color:black;
}
.highlighted {
background-color:white;
}
If you mouseover evtTarget id paragraph highligt. And if you click evtTarget id highlighting will be off.
But I want to if user click secondly highlighting is on.
How can i do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用
.data
方法 (api) 来保存是否不突出显示的是:You could use the
.data
method (api) to save the whether or not highlighting is on:我不确定你所说的第二次点击是什么意思。如果您的意思是右键单击(鼠标辅助按钮),您还需要绑定到“右键单击”。如果您的意思是希望在第二次单击时重新突出显示,那么您的代码似乎已经进行了突出显示。如果您只想更改文本,则只需将类似的内容放入突出显示方法中:
I'm not sure what you mean by click secondly. If you mean right click (secondary mouse button), you'll want to also bind to "rightclick". If you mean you want the highlighting back on when they click a second time, your code already appears to do the highlighting. If you just want to change the text as well, you'd want to just put something like this into your highlight method:
尝试这个 javascript:
让 jQuery 为您完成工作,而不是手动管理可突出显示的状态。如果用户单击 div,请删除“正常”类,该类会使 mouseover 和 mouseleave 事件无效。如果他们再次点击,只需恢复“正常”类别即可。
您可以在 live() 中查看该函数的文档。
try this javascript:
instead of managing the state of your as highlight-able manually, let jQuery do the work for you. If the user clicks the div, remove the 'normal' class which invalidates the mouseover and mouseleave events. If they click again, just reinstate the 'normal' class.
You can see the documentation for the function at live().