Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   live & change (https://javascript.ru/forum/jquery/5214-live-change.html)

Jaska 26.09.2009 21:14

live & change
 
Код рабочий для chrome но в IE 8 он отказывается работать. Не пойму что конкретно не работает? live или change? При изменении в input'e данные не передаются. Привожу код:

$(document).ready(function() {
 $(function(){
  $("div[id]").each(function(){
   var sID = $(this).attr("id");
   var iSize = $(this).attr("size");
   var iMaxlength = $(this).attr("maxlength");
   $.post('main.php', {'action': 'maketemplate', 'param': sID, 'size': iSize, 'maxlength': iMaxlength}, function(data) {
    $("#" + sID).html(data);
   });
  });
 });
 
 $("input").live("change", function(){
  var sName = $(this).attr("name");
  var sValue = $(this).attr("value");
  $.post('main.php', {'action': 'update', 'param': sName, 'value': sValue }, function(data) {

  });
 });
});


<!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=windows-1251" />
<title>Web PtokaX</title>
<link href="style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="template.js"></script> 
</head>
<body>
<div id="GetString21"></div>
<div id="GetBool22"></div>
<div id="GetNumber23"></div>
</form>
</body>
</html>

e1f 28.09.2009 14:58

Читаем документацию:
Цитата:

Possible event values: click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, keydown, keypress, keyup
Currently not supported: blur, focus, mouseenter, mouseleave, change, submit

Jaska 28.09.2009 22:11

Но ведь в хроме работает. Или я что-то не пойму?

Riim 29.09.2009 03:07

Jaska, случайно много что может работать, надо на документацию ориентироваться.

Jaska 29.09.2009 04:35

Не согласен. Случайностей в программировании не бывает. На все есть причина.

Riim 29.09.2009 05:04

Бывают.

Kolyaj 29.09.2009 08:29

Цитата:

Сообщение от Jaska
Случайностей в программировании не бывает. На все есть причина.

Причина-то есть, но именно этот код именно у вас заработал случайно.

e1f 29.09.2009 13:48

Ну почему случайно? причин может быть вагон и маленькая тележка, просто не на поверхности... Скорее всего, Хром тригал у вас како1-то кейпресс. Change отловить liv'ом не представляется возможным, ввиду того, что live реализован как бинд на document. Как слушать change на документе?

Jaska 29.09.2009 14:02

Проблема решилась но не полностью добавлением плагина livequery .. ослик заработал как миленький. Правда событие происходило только для первого input'a.

я дебажил с помощью алерта .. при снятии фокуса происходило событие, тоесть change. В хроме все работало нормально и без плагина. Еще ребята говорили что в ФФ тоже норм работало.

Jaska 02.10.2009 10:25

Плагин работает как надо. Проблема оказалась в том что $("input#px") почему то получаем 1 запись в массив. Если $("input:not(.auth)") то все отлично работает. Правда если будут еще инпуты такой вариант не проканает


Часовой пояс GMT +3, время: 03:15.