Javascript 动态添加元素时,JQuery fadeToggle会产生奇怪的副作用
fadeToggle在静态HTML元素上正常工作: HTML: 但是当我尝试用JQuery添加包装器时 HTML:Javascript 动态添加元素时,JQuery fadeToggle会产生奇怪的副作用,javascript,jquery,html,Javascript,Jquery,Html,fadeToggle在静态HTML元素上正常工作: HTML: 但是当我尝试用JQuery添加包装器时 HTML: JQUERY: $("#wrapper").click(function() { $("#cover").fadeToggle("slow"); }); $wrapper = $('<div></div>'); $wrapper.attr('id', 'mywrapper'); $wrapper.css({ position: "re
JQUERY:
$("#wrapper").click(function() {
$("#cover").fadeToggle("slow");
});
$wrapper = $('<div></div>');
$wrapper.attr('id', 'mywrapper');
$wrapper.css({
position: "relative",
display: "inline-block",
width: $("#cover").width(),
height: $("#cover").height(),
background: "url('http://upload.wikimedia.org/wikipedia/commons/thumb/a/a9/Example.jpg/116px-Example.jpg') no-repeat"
});
$("#cover").wrap($wrapper);
$("#mywrapper").click(function() {
$("#cover").fadeToggle("slow");
});
$wrapper=$('');
$wrapper.attr('id','mywrapper');
$wrapper.css({
职位:“相对”,
显示:“内联块”,
宽度:$(“#封面”).width(),
高度:$(“#封面”)。高度(),
背景:“url('http://upload.wikimedia.org/wikipedia/commons/thumb/a/a9/Example.jpg/116px-Example.jpg“)不要重复”
});
美元(“#封面”)。包装($wrapper);
$(“#mywrapper”)。单击(函数(){
美元(“#封面”)。淡入淡出(“慢”);
});
…在第二次切换(第二次单击)后-img html元素被“选中”。。。
你有什么办法避免它吗?谢谢 如果“选定”是指文本选择,请执行以下操作:
CSS:
但是,如果您的意思是浏览器正在div周围添加不需要的边框,请执行以下操作:
CSS:
我已经设法用一种“黑客”解决了它
$(“#封面”)。在($('')之后;
$(“#mywrapper”)。单击(函数(){
美元(“#封面”)。淡入淡出(“慢”);
$(“#hack”).blur();
});
两个JSFIDLE的行为都是一样的,请解释“选择”的含义谢谢你的回答,但我已经设法“破解”。。。但是我想你的方法是一个更好的方法。。。
<img id="cover" src="http://upload.wikimedia.org/wikipedia/commons/thumb/7/70/Example.png/116px-Example.png" />
$wrapper = $('<div></div>');
$wrapper.attr('id', 'mywrapper');
$wrapper.css({
position: "relative",
display: "inline-block",
width: $("#cover").width(),
height: $("#cover").height(),
background: "url('http://upload.wikimedia.org/wikipedia/commons/thumb/a/a9/Example.jpg/116px-Example.jpg') no-repeat"
});
$("#cover").wrap($wrapper);
$("#mywrapper").click(function() {
$("#cover").fadeToggle("slow");
});
#mywrapper{
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-o-user-select: none;
user-select: none;
}
#mywrapper{
outline:none;
}
$("#cover").after($('<a style="display: hidden; position: absolute;" id="hack"></a>'));
$("#mywrapper").click(function() {
$("#cover").fadeToggle("slow");
$("#hack").blur();
});