有我的代码:
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,则突出显示将关闭。
但我想如果用户点击其次突出显示已开启。
我该怎么做?
答案 0 :(得分:0)
试试这个javascript:
<script type="text/javascript">
$(function() {
$(".normal").live("mouseover", highlighted);
$(".normal").live("mouseleave", highlighted);
$("#evtTarget").toggle(
function() {
$(this).toggleClass("normal");
$(this).html("Off.Click for On.");
},
function() {
$(this).toggleClass("normal");
$(this).html("On. Click for Off.");
}
);
});
function highlighted(evt){
$("#evtTarget").toggleClass("highlighted");
}
</script>
而不是手动管理您的高亮状态,让jQuery为您完成工作。如果用户单击div,则删除“normal”类,该类使mouseover和mouseleave事件无效。如果他们再次点击,只需恢复“正常”课程。
您可以在live()找到该功能的文档。
答案 1 :(得分:0)
我不确定你的意思是第二次点击。如果您的意思是右键单击(鼠标左键),您还需要绑定到“右键单击”。如果您的意思是在第二次单击时希望重新突出显示,则代码已经显示为突出显示。如果您只想更改文本,您只需要将这样的内容放入高亮显示方法中:
if$("#evtTarget").html().indexOf("Off") == 1){
$("#evtTarget").html("On. Click for Off.");
} else {
$("#evtTarget").html("Off. Click for On.");
}
答案 2 :(得分:0)
您可以使用.data
方法(api)来保存是否有突出显示:
$(function() {
$("#evtTarget").bind("mouseover",highlighted)
.bind("mouseleave",highlighted)
.data("isOn", true);
$("#evtTarget").bind("click",function(){
if($(this).data("isOn")) {
$("#evtTarget")
.unbind("mouseover",highlighted)
.unbind("mouseleave",highlighted)
.removeClass("highlighted")
.html("Off: Click for On.")
.data("isOn", false);
} else {
$("#evtTarget")
.bind("mouseover",highlighted)
.bind("mouseleave",highlighted)
.addClass("highlighted")
.html("On: Click for Off.")
.data("isOn", true);
}
});
});
function highlighted(evt){
$("#evtTarget").toggleClass("highlighted");
}