Olá pessoal, tudo bom?
Eu tenho o seguinte código:
[code]<div style=“margin-bottom: 10px;”>
<span style=“float: left;”>
<select id=“arquivo” class=“componente” style=“width: 100px;” >
<c:forEach var=“codigo” items="${arquivoList}">
<option value="${codigo}">${codigo}</option>
</c:forEach>
</select>
</span>
<span style=“margin-left: 10px;”>
<button type=“button” onclick=“adicionar();”>
<fmt:message key=“rotuloBtAdicionar” />
</button>
</span>
</div>
<div id=“arquivosSelecionado” class=“ui-corner-all” style=“border: solid 1px #999 ; padding-left: 5px;
padding-bottom: 5px; min-height: 10px;”>
<div class=“displayInlineBlock”>ola</div>
</div>
<script type=“text/javascript”>
function adicionar() {
$(’#arquivosSelecionado ’).append(’<div class=“displayInlineBlock”>’ +
$(’#arquivo ’).val() + ‘<span style=“float: right; display: none; width: 10px;” class=“ui-icon ui-icon-closethick”></span></div>’);
};
$(document).ready( function() {
$(’.displayInlineBlock’).mouseover(function(){alert();});
});
</script>[/code]
Então, quando eu adiciono vários itens pelo botão de adicionar, o alert só funciona na div do ‘ola’…
Mas o mais estranho é que a CSS (:hover) é aplicada em todos eles.
Alguém sabe o que pode ser?
Jonhkr
Setembro 23, 2011, 6:47pm
#2
tente assim
[code]
$(function(){
var adicionar = function() {
$('#arquivosSelecionado').append('<div class="displayInlineBlock">' +
$('#arquivo').val() + '<span style="float: right; display: none; width: 10px;" class="ui-icon ui-icon-closethick"></span></div>');
};
$('.displayInlineBlock').mouseover(function(){alert();});
}); [/code]
Mas ai eu conseguiria chamar o adicionar a qualque hora? como?
Jonhkr
Setembro 23, 2011, 9:45pm
#4
The .ready() method is typically used with an anonymous function:
$(document).ready(function() {
// Handler for .ready() called.
});
Which is equivalent to calling:
$(function() {
// Handler for .ready() called.
});
Desculpe, não fui muito claro.
Eu preciso chamar a função adicionar:
<button type="button" onclick="adicionar();">
<fmt:message key="rotuloBtAdicionar" />
</button>
Agora ela esta em uma variável, como faço para executá-la?
Jonhkr
Setembro 23, 2011, 10:01pm
#6
[quote=Rafael Guerreiro]Desculpe, não fui muito claro.
Eu preciso chamar a função adicionar:
<button type="button" onclick="adicionar();">
<fmt:message key="rotuloBtAdicionar" />
</button>
Agora ela esta em uma variável, como faço para executá-la?[/quote]
ok neste caso deixe como estava antes
funcao adicionar(){
}
mas os dois modos funcionam
outra coisa,
ja que voce esta usando jquery
porque nao fazer isso
remover o atributo onclick do botao, e o js fica assim
[code]$(function(){
var adicionar = function() {
$('#arquivosSelecionado').append('<div class="displayInlineBlock">' +
$('#arquivo').val() + '<span style="float: right; display: none; width: 10px;" class="ui-icon ui-icon-closethick"></span></div>');
};
$('.displayInlineBlock').mouseover(function(){alert();});
$("button").click(function(){
adicionar();
});
}); [/code]
Meu código está assim agora:
<script type="text/javascript">
$(function(){
var adicionar = function () {
$('#arquivosSelecionado').append('<div class="displayInlineBlock">' +
$('#arquivo').val() + '<span style="float: right; display: none; width: 16px;" class="ui-icon ui-icon-closethick"></span></div>');
};
$(document).ready( function() {
$('.displayInlineBlock').mouseover(function(){
$(this).find('.ui-icon-closethick').show();
});
$('.displayInlineBlock').mouseout(function(){
$(this).find('.ui-icon-closethick').hide();
});
$('.adicionar').click(function(){
adicionar();
});
});
});
</script>
Só que ele não faz o mouseover e o mouseout das divs que forem incluídas pelo método adicionar();
Se eu colocar um monte de divs dessa na mão, ele faz de todas elas, menos das que eu adicionar pelo método… É isso que me deixa super incucado.
Jonhkr
Setembro 23, 2011, 10:33pm
#8
[quote=Rafael Guerreiro]Meu código está assim agora:
<script type="text/javascript">
$(function(){
var adicionar = function () {
$('#arquivosSelecionado').append('<div class="displayInlineBlock">' +
$('#arquivo').val() + '<span style="float: right; display: none; width: 16px;" class="ui-icon ui-icon-closethick"></span></div>');
};
$(document).ready( function() {
$('.displayInlineBlock').mouseover(function(){
$(this).find('.ui-icon-closethick').show();
});
$('.displayInlineBlock').mouseout(function(){
$(this).find('.ui-icon-closethick').hide();
});
$('.adicionar').click(function(){
adicionar();
});
});
});
</script>
Só que ele não faz o mouseover e o mouseout das divs que forem incluídas pelo método adicionar();
Se eu colocar um monte de divs dessa na mão, ele faz de todas elas, menos das que eu adicionar pelo método… É isso que me deixa super incucado.[/quote]
ok,
ta ai um exemplo
isso aqui
$(function(){
});
'e igual a isso aki
$(document).ready....
quando da o append da div 'e preciso setar o handler do mouseover novamente para que o js encontre o elemento.
[code]
<html>
<head>
<script src=“jquery.js”></script>
<script>
$(function(){
var div = “<div class=‘over’>over-me</div>”;
$("button").click(function(){
$("div#div").append(div);
$("div.over").mouseover(function(){
alert("yep");
});
})
});
</script>
<body>
<div id=“div” ></div>
<button>btn</button>
</body>
</html>[/code]
Jonhkr, muito obrigado! Resolveu o meu problema, mas antes de finalizar o tópico, eu gostaria de saber mais uma coisinha:
Como eu consigo pegar o valor que está dentro das tags (no exemplo, o 12) com jQuery?
<div>12</div>
-Edit-
Consegui usando o $(‘div’).text();
Jonhkr
Setembro 24, 2011, 9:46am
#10
[quote=Rafael Guerreiro]Jonhkr, muito obrigado! Resolveu o meu problema, mas antes de finalizar o tópico, eu gostaria de saber mais uma coisinha:
Como eu consigo pegar o valor que está dentro das tags (no exemplo, o 12) com jQuery?
<div>12</div>
-Edit-
Consegui usando o $(‘div’).text();[/quote]
yes of course,
you can find more info here
http://jquery.com
[quote=Jonhkr][quote=Rafael Guerreiro]Jonhkr, muito obrigado! Resolveu o meu problema, mas antes de finalizar o tópico, eu gostaria de saber mais uma coisinha:
Como eu consigo pegar o valor que está dentro das tags (no exemplo, o 12) com jQuery?
<div>12</div>
-Edit-
Consegui usando o $(‘div’).text();[/quote]
yes of course,
you can find more info here
http://jquery.com
[/quote]
Sim, sim, foi lá mesmo que eu aprendi a mexer um pouco com jQuery, mas eu demoro muito para achar o que estou procurando. Foi lá mesmo que eu encontrei o .text();
Muito obrigado pela disposição!