[Resolvido]Função do jQuery não funciona

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?

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?

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:

&lt;button type="button" onclick="adicionar();"&gt; &lt;fmt:message key="rotuloBtAdicionar" /&gt; &lt;/button&gt;

Agora ela esta em uma variável, como faço para executá-la?

[quote=Rafael Guerreiro]Desculpe, não fui muito claro.

Eu preciso chamar a função adicionar:

&lt;button type="button" onclick="adicionar();"&gt; &lt;fmt:message key="rotuloBtAdicionar" /&gt; &lt;/button&gt;

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('&lt;div class="displayInlineBlock"&gt;' +     
	$('#arquivo').val() + '&lt;span style="float: right; display: none; width: 10px;" class="ui-icon ui-icon-closethick"&gt;&lt;/span&gt;&lt;/div&gt;');    
};    

$('.displayInlineBlock').mouseover(function(){alert();});

$("button").click(function(){
	adicionar();
});

}); [/code]

Meu código está assim agora:

&lt;script type="text/javascript"&gt; $(function(){ var adicionar = function () { $('#arquivosSelecionado').append('&lt;div class="displayInlineBlock"&gt;' + $('#arquivo').val() + '&lt;span style="float: right; display: none; width: 16px;" class="ui-icon ui-icon-closethick"&gt;&lt;/span&gt;&lt;/div&gt;'); }; $(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(); }); }); }); &lt;/script&gt;

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=Rafael Guerreiro]Meu código está assim agora:

&lt;script type="text/javascript"&gt; $(function(){ var adicionar = function () { $('#arquivosSelecionado').append('&lt;div class="displayInlineBlock"&gt;' + $('#arquivo').val() + '&lt;span style="float: right; display: none; width: 16px;" class="ui-icon ui-icon-closethick"&gt;&lt;/span&gt;&lt;/div&gt;'); }; $(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(); }); }); }); &lt;/script&gt;

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?

&lt;div&gt;12&lt;/div&gt;

-Edit-

Consegui usando o $(‘div’).text();

[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?

&lt;div&gt;12&lt;/div&gt;

-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?

&lt;div&gt;12&lt;/div&gt;

-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!

de nada :slight_smile: