2013-10-03 6 views
0

Я создал функцию, которая устанавливает .click для количества переданных ей кнопок.событие .click не работает ТОЛЬКО для последней кнопки (события, определенные для цикла)

Эта функция вызывается, когда другой Jquery определяет количество кнопок на странице

... 
var n = $(".button").length + 1; 
... 
set_navig(n); 
... 

function set_navig(n){ 
    for(i=1 ; i<n ; i++){ 
     var btn = "#pb" + i; 
     $(document).ready(function(){ 
      $(btn).click(function(){ 
       alert('Working!'); 
      }); 
     }); 
    } 
} 

Я попытался удаления или добавления кнопок на странице - правильно (п) передается функции, но всегда только последний не работает вообще.

ЛЮБЫЕ ИДЕИ?


Thnx to EVERYBODY для очень хорошего материала, доступного здесь. Вы, где главный источник знаний JQuery, когда я начал его изучать.

ответ

0

Ну, изначально я думал, что вы должны использовать i < = n, но вы передаете длину + 1 (это необычно, кстати). Вы можете просто передать массив кнопок вместо длины. Затем вы можете проходить через каждую из них.

Я не вижу конкретной ошибки с кодом, отличным от стиля, поэтому, возможно, вы не получаете столько объектов .button, сколько вы думаете, или, возможно, у вас есть опечатка в последнем идентификаторе. Вы должны вставить образец html-кода или просто отладить его самостоятельно, используя alert(), чтобы узнать, какие значения передаются.

Для дальнейшего использования общие петли на многих языках либо: for(i=0;i<n;i++){}, либо for(i=1;i<=n;i++){} Я бы сказал, что длина прохождения + 1 для вашей функции - очень плохая практика.