有一个脚本,在前循环中生成div,并将数据库中的一个句子附加到其中。现在我想做一个链接的句子,我确实得到了一个链接的样式(蓝色下划线),但点击什么都没有发生。下面是我代码的一部分:
E_D I T_E_D
<html>
<style>
html,body {
width:100%;
height:100%;
margin:0;
font-family: "Nitti Grotesk",Helvetica,Arial,sans-serif;
}
.random {
position:absolute;
padding:10px;
font-size:10pt;
display:inline-block;
}
p{display: inline;}
</style>
<body>
<div class="allescheissehierrein">
</div>
</body>
<script src="https://code.jquery.com/jquery-2.2.4.js"></script>
<script>
$(document).ready(function(){
//einfach loop mit bis 100 oder was auch immer
for(i=1; i<=10; i++){
console.log('test');
//einen div in eine variable speichern
//es wird für die datenbank "data-hover" auf den i wert gesetzt welcher ja stetig hochzählt darum alle verschieden
if (i<24){
var div = '<div data-hover="'+i+'" class="random">#</div>';
} else if ((i>23) && (i<47)){
var div = '<div data-hover="'+i+'" class="random">**</div>';
} else if ((i>46) && (i<97)){
var div = '<div data-hover="'+i+'" class="random">-</div>';
} else if ((i>96) && (i<114)){
var div = '<div data-hover="'+i+'" class="random">1.</div>';
} else if (i>113){
var div = '<div data-hover="'+i+'" class="random">~~</div>';
}
//diesen die dem allescheissehierrein-div appendieren (100 mal)
$('.allescheissehierrein').append(div);
}
//diese platzier dings funktionion erst nach der platzierung aller divs (diese 100) machen weil sie ja vorher gar nicht existieren
platzierRandom();
//richtig mit jquery UND datenbank
$('.random').mouseover(function(){
var hoverdata = $(this).data('hover');
var satzvondatenbank = datenbank[hoverdata];
console.log('hoverdata', hoverdata);
console.log('satzvondatenbank', satzvondatenbank);
$( this ).append( $( "<span>"+satzvondatenbank+"</span>" ).show('slow'));
}).mouseout(function(){
$( this ).find( "span:last" ).remove();
});
});
var datenbank = {
1: '<a href="www.google.com">So,</a>',
2: 'so',
3: 'you',
4: 'think',
5: 'you',
6: 'can',
8: 'tell',
9: 'Heaven',
10: 'from',
11: 'Hell',
12: 'blue',
13: 'Skies',
14: 'from',
15: 'Pain',
16: 'Can,',
17: 'you',
18: 'tell',
19: 'a green',
20: 'field',
21: 'from',
22: 'a',
23: 'cold',
24: 'steel',
25: 'rail?',
26: 'A',
27: 'Smile',
28: 'from',
29: 'a',
30: 'veil?',
31: 'Do',
32: 'you',
33: 'think',
34: 'you',
35: 'can',
36: 'tell?',
37: 'And',
38: 'did',
39: 'they',
40: 'get',
41: 'you',
42: 'trade',
43: 'your',
44: 'heroes,',
45: 'for',
46: 'ghosts?',
47: 'Hot',
48: 'ashes',
49: 'for',
50: 'trees?',
51: 'Hot',
52: 'air',
53: 'for',
54: 'a',
55: 'cool',
56: 'breeze?',
57: 'Cold',
58: 'comfort',
59: 'for',
60: 'change?',
61: 'And',
62: 'did',
63: 'you',
64: 'exchange',
65: 'A',
66: 'walk',
67: 'on',
68: 'part',
69: 'in',
70: 'the',
71: 'war',
72: 'for',
73: 'a',
74: 'leading',
75: 'role',
76: 'in',
77: 'a',
78: 'cage?',
79: 'How',
80: 'I',
81: 'wish',
82: 'how',
83: 'I',
84: 'wish',
85: 'you',
86: 'were',
87: 'here',
88: 'We re ',
89: 'just',
90: 'two',
91: 'lost',
92: 'souls',
93: 'swimming',
94: 'in',
95: 'a',
96: 'fish',
97: 'bowl',
98: 'Year',
99: 'after',
100: 'Year',
101: 'Running',
102: 'over',
103: 'the',
104: 'same',
105: 'old',
106: 'ground',
107: 'What',
108: 'have',
109: 'we',
110: 'found?',
111: 'the',
112: 'same',
113: 'old',
114: 'fears',
115: 'Wish',
116: 'you',
117: 'were',
118: 'here'
};
function platzierRandom(){
w=document.body.offsetWidth;
h=document.body.offsetHeight;
rd=document.getElementsByTagName('div');
for(c=0;c<rd.length;c++) {
if(rd[c].className=='random') {
xCoord=Math.floor(Math.random()*w);
yCoord=Math.floor(Math.random()*h);
if(xCoord>=w-rd[c].offsetWidth-10){
xCoord=w-rd[c].offsetWidth-10;
}
if(xCoord<=10){
xCoord=10;
}
if(yCoord>=h-rd[c].offsetHeight-10){
yCoord=h-rd[c].offsetHeight-10;
}
if(yCoord<=10){
yCoord=10;
}
rd[c].style.left=xCoord+'px';
rd[c].style.top=yCoord+'px';
}
}
}
</script>
</html>发布于 2016-11-07 12:34:22
与使用events mouseover()和mouseout()不同,您可以使用模拟悬停的JQuery#hover(完毕,退出)方法(鼠标上下移动对象)。这是一个自定义的方法,它为频繁的任务提供了一个“in”。
参数说明:
还请注意,我对代码进行了一些代码重构,并将https添加到datenbank对象的元素1: '<a href="www.google.com">So,</a>'中。
见问题和相关内容:为什么锚标记的href值需要http://预配置到URL?
代码示例:
var $allescheissehierrein = $('.allescheissehierrein'),
datenbank = {1: '<a href="https://www.google.com">So,</a>', 2: 'so', 3: 'you', 4: 'think', 5: 'you', 6: 'can', 7: 'seven', 8: 'tell', 9: 'Heaven', 10: 'from', 11: 'Hell', 12: 'blue', 13: 'Skies', 14: 'from', 15: 'Pain', 16: 'Can,', 17: 'you', 18: 'tell', 19: 'a green', 20: 'field', 21: 'from', 22: 'a', 23: 'cold', 24: 'steel', 25: 'rail?', 26: 'A', 27: 'Smile', 28: 'from', 29: 'a', 30: 'veil?', 31: 'Do', 32: 'you', 33: 'think', 34: 'you', 35: 'can', 36: 'tell?', 37: 'And', 38: 'did', 39: 'they', 40: 'get', 41: 'you', 42: 'trade', 43: 'your', 44: 'heroes,', 45: 'for', 46: 'ghosts?', 47: 'Hot', 48: 'ashes', 49: 'for', 50: 'trees?', 51: 'Hot', 52: 'air', 53: 'for', 54: 'a', 55: 'cool', 56: 'breeze?', 57: 'Cold', 58: 'comfort', 59: 'for', 60: 'change?', 61: 'And', 62: 'did', 63: 'you', 64: 'exchange', 65: 'A', 66: 'walk', 67: 'on', 68: 'part', 69: 'in', 70: 'the', 71: 'war', 72: 'for', 73: 'a', 74: 'leading', 75: 'role', 76: 'in', 77: 'a', 78: 'cage?', 79: 'How', 80: 'I', 81: 'wish', 82: 'how', 83: 'I', 84: 'wish', 85: 'you', 86: 'were', 87: 'here', 88: 'We re ', 89: 'just', 90: 'two', 91: 'lost', 92: 'souls', 93: 'swimming', 94: 'in', 95: 'a', 96: 'fish', 97: 'bowl', 98: 'Year', 99: 'after', 100: 'Year', 101: 'Running', 102: 'over', 103: 'the', 104: 'same', 105: 'old', 106: 'ground', 107: 'What', 108: 'have', 109: 'we', 110: 'found?', 111: 'the', 112: 'same', 113: 'old', 114: 'fears', 115: 'Wish', 116: 'you', 117: 'were', 118: 'here'},
simbol = '',
platzierRandom = function () {
var w = document.body.offsetWidth,
h = document.body.offsetHeight,
rd = document.getElementsByTagName('div');
for (var c = 0, l = rd.length; c < l; c++) {
if (rd[c].className !== 'random') {
continue;
}
var xCoord = Math.floor(Math.random() * w),
yCoord = Math.floor(Math.random() * h);
switch (true) {
case (xCoord >= w - rd[c].offsetWidth - 10):
xCoord = w - rd[c].offsetWidth - 10;
break;
case (xCoord <= 10):
xCoord = 10;
break;
case (yCoord >= h - rd[c].offsetHeight - 10):
yCoord = h - rd[c].offsetHeight - 10;
break;
case (yCoord <= 10):
yCoord = 10;
break;
}
rd[c].style.left = xCoord + 'px';
rd[c].style.top = yCoord + 'px';
}
};
//einfach loop mit bis 100 oder was auch immer
for (var i = 1; i <= 10; i++) {
//einen div in eine variable speichern
//es wird für die datenbank "data-hover" auf den i wert gesetzt welcher ja stetig hochzählt darum alle verschieden
switch (true) {
case (i < 24):
simbol = '#';
break;
case ((i > 23) && (i < 47)):
simbol = '**';
break;
case ((i > 46) && (i < 97)):
simbol = '-';
break;
case ((i > 96) && (i < 114)):
simbol = '1.';
break;
case (i > 113):
simbol = '~~';
break;
}
//diesen die dem allescheissehierrein-div appendieren (100 mal)
$allescheissehierrein.append('<div data-hover="' + i + '" class="random"><p>' + simbol + '</p></div>');
}
//diese platzier dings funktionion erst nach der platzierung aller divs (diese 100) machen weil sie ja vorher gar nicht existieren
platzierRandom();
//richtig mit jquery UND datenbank
$('.random')
.hover(function () {
var hoverdata = $(this).data('hover'),
satzvondatenbank = datenbank[hoverdata];
$(this).append($('<span>' + satzvondatenbank + '</span>').show('slow'));
}, function () {
$(this).find('span:last').remove();
});html,body {
width:100%;
height:100%;
margin:0;
font-family: "Nitti Grotesk",Helvetica,Arial,sans-serif;
}
.random {
position:absolute;
padding:30px;
font-size:10pt;
display:inline-block;
}
p {display: inline;}<script src="https://code.jquery.com/jquery-2.2.4.js"></script>
<body>
<div class="allescheissehierrein"></div>
</body>
https://stackoverflow.com/questions/40460319
复制相似问题