2010-05-19 3 views
0

У меня есть элемент <select>, который мне нужно отслеживать с помощью change().jQuery change() with live() in 1.3.2

jQuery('.dropdown').change(function(){ 

yada, yada 

}); 

Совершенно работает на уже созданных элементах. Однако, если я динамически создаю <select>, он (очевидно) не работает. Теперь я застрял с JQuery 1.3.2 (длинный рассказ), так что если я использую что-то вроде:

jQuery('.dropdown').live('change', function(){ 

yada, yada 

}); 

не работает.

Итак, любые идеи? Как я могу выполнить эту работу с динамически создаваемыми элементами?

+0

Я думаю, что у вас есть ошибка в вашем коде ... – coma

ответ

2

Это работает:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
    <title>Test</title> 
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.3.2.min.js"></script> 
    <script type="text/javascript"> 
    $(function() { 

    $('select').live('change', function(){ 

    alert(this.value); 

    }); 

    }); 
    </script> 
</head> 
<body> 
    <form> 
    <p> 
    <select name="numeros"> 
    <option value="0">cero</option> 
    <option value="1">uno</option> 
    <option value="2">dos</option> 
    </select> 
    </p> 
    </form> 
</body> 
</html> 
0

AFAIK, OnChange событие не поддерживается live() пытаются использовать livequery plugin

+0

Это неправда, я только что протестировал jquery-1.3.2.min.js, и он работает – coma

1

С JQuery 1.4.2 $('select').live('change', function(){ работает с FF, Safari, Opera, но не для IE