2013-09-05 4 views
0

Привет всем Я новичок в jquery. Я столкнулся с проблемой с функцией изменения I JqueryJQuery change() не работает

<html> 
<head> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"> 
</script> 
<script> 

    $("input").change(function(){ 
    alert("The text has been changed."); 
    }); 
</script> 
</head> 
<body> 

<input type="text"> 
<p>Write something in the input field, and then press enter or click outside the field.</p> 

</body> 
</html> 

Я не получаю окно предупреждения, когда я нажимаю его вне текстового поля. Пожалуйста, помогите мне решить эту проблему: D

+2

Это всегда хорошая идея, чтобы просмотреть вашу консоль браузера всякий раз, когда вы работаете над Javascript вещей. Вероятно, вы, вероятно, получили сообщение об ошибке, которое расскажет вам больше о реальной проблеме. –

+0

@GregHewgill - это определенно хорошая идея проверить консоль на наличие ошибок, но в этом случае я не верю, что будет ошибка: приведенный код синтаксически действителен и будет выполняться, у него просто не будет желаемого эффект. – nnnnnn

ответ

7

Вы пытаетесь добавить обработчик изменений к элементу перед его добавлением в dom. Вы можете использовать DOM ready обратного вызова, чтобы задержать выполнение скрипта, пока все элементы будут загружены в йот

jQuery(function($){ 
    $("input").change(function(){ 
    alert("The text has been changed."); 
    }); 
}) 

Демо: Fiddle

1

вы также можете попробовать это:

$(document).ready(function(){ 
$("input").change(function(){ 
    alert("The text has been changed."); 
    }); 
}); 
0

Поместите свой код внутри:

$(function(){ 
    // Your code 
}); 

Сценарий будет ждать готовности DOM.

2

вы также можете попробовать это:

$(function() { 
    $("input").change(function(){ 
      alert("The text has been changed."); 
    }); 
})