Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 动态添加元素时,JQuery fadeToggle会产生奇怪的副作用_Javascript_Jquery_Html - Fatal编程技术网

Javascript 动态添加元素时,JQuery fadeToggle会产生奇怪的副作用

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

fadeToggle在静态HTML元素上正常工作: HTML:

但是当我尝试用JQuery添加包装器时

HTML:


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();
});