Вот мой код:JQuery функция, задающая нажмите переопределяет все функции щелчка
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" ></script>
<script type="text/javascript" >
$(document).ready(function() {
var qtypes = ['Text','Area'];
for(qt in qtypes){
console.log('#submitQuestion' + qtypes[qt] + ' ' + qt);
var name = '#submitQuestion' + qtypes[qt];
$(name).click(function(){
console.log('clicked ' + name);
});
$('#submitQuestion' + qtypes[0]).click();
}
$('#submitQuestion' + qtypes[0]).click();
$('#submitQuestion' + qtypes[1]).click();
});
</script>
<input type="button" id="submitQuestionText" value="submit Question" />
<input type="button" id="submitQuestionArea" value="submit Area" />
Результаты в консоли вывода:
#submitQuestionText 0
clicked #submitQuestionText
#submitQuestionArea 1
clicked #submitQuestionArea
clicked #submitQuestionArea
clicked #submitQuestionArea
Почему использует для цикла переопределяя все функции (щелчок)? Я ожидал увидеть последние две строки вывода, чтобы быть:
clicked #submitQuestionText
clicked #submitQuestionArea
В документации для jQuery click() указано, что он не полностью идентичен реальному событию клика. – Dave
Это проблема с областью, попробуйте ответить на этот вопрос: http://stackoverflow.com/questions/2192348/closures-in-a-for-loop –