2016-02-18 2 views
0

, пожалуйста, помогите! Я попытался вызвать функцию при нажатии тега.Функция не срабатывает при нажатии тега

<a href="<?php echo "javascript:pager('".$start."', 'search-inbox', '".$keyword."', 'prev')"; ?>" id="prev" class="pager-link"><i class="fa fa-chevron-left inbox-pager" id="prev"></i></a> 
<a href="<?php echo "javascript:pager('".$start."', 'search-inbox', '".$keyword."', 'next')"; ?>" id="next" class="pager-link"><i class="fa fa-chevron-right inbox-pager" id="next"></i></a> 

в моем сценарии

function pager(start, searchKeyword, keyword, page){ 
    var pager = page; 
    switch(pager){ 
     case "prev": 
       if(start > 10 && start <= totalCount){ 
       start -= limit; 
       if(start == 1 || start > 1){ 
        loadMessages(start, searchKeyword, keyword); 
       } else { 
        return; 
       }      
      } 
      break; 
     case "next": 
      if(end < totalCount){ 
       start += limit; 
       if(start < totalCount){ 
        loadMessages(start, searchKeyword, keyword); 
       } else if(start == totalCount){ 
        loadMessages(start, searchKeyword, keyword); 
       } else { 
        return; 
       } 
      } 
      break; 
    } 
    alert(pager); 
} 

эта функция не вызывает, но когда я опустить условие переключения я могу вызвать функцию.

function pager(start, searchKeyword, keyword, page){ 
    alert(page); 
} 

новичок здесь

+0

Вы объявили 'totalCount',' limit' как переменную? Любые ошибки, которые вы получили от консоли? –

+0

Если функция запускается только после удаления инструкции 'switch', то, очевидно,' switch' содержит некоторую ошибку (-ы). Отображаются ли какие-либо ошибки в dev-консоли браузера? (Одна вещь, которую вы делаете неправильно, - это передать первый аргумент как строку, а не число, но, хотя я ожидал бы, что для получения неправильных результатов для вашего «следующего» пейджинга я бы не ожидал, что он остановит функцию от запуска вообще .) – nnnnnn

+0

Невозможно увидеть переменную 'end', объявленную либо – LGSon

ответ

0

Я увидел ошибку, в которой я вложил $ start внутри одинарной кавычки (''), поэтому передал строку вместо integer.

<a href="<?php echo "javascript:pager(".$start.", 'search-sent', '".$keyword."', 'prev')"; ?>" id="prev-sent" class="pager-link"><i class="fa fa-chevron-left sent-pager" id="prev-sent"></i></a> 
<a href="<?php echo "javascript:pager(".$start.", 'search-sent', '".$keyword."', 'prev')"; ?>" id="next-sent" class="pager-link"><i class="fa fa-chevron-right sent-pager" id="next-sent"></i></a> 
0

Приложить слушатель событий в файле JS, а не встроенном в HTML.

$(document).ready(function(){ 
    // Attach event listeners 
    $('.bigButton, #menuButton, #aboutButton').on({ 
    'click': fClick, 
    'mouseover':fMouseOver, 
    'mouseout':fMouseOut, 
    'mouseup':fMouseUp, 
    'mousedown':fMouseDown, 
    }); 
}); 

    // Event Functions 
function fMouseOver(e){ 
    if (this.id == 'menuButton') { 
     //do something 
    } 
    if (this.className == 'bigButton') {   
     //do something 
    } 
} 
+0

Зачем это решить проблему? OP говорит, что функция называется успешно, если оператор switch удален из своего тела. – nnnnnn

+0

«эта функция не является триггером» –

+0

«но когда я опускаю условие переключения, я могу вызвать функцию». – nnnnnn

0

Попробуйте switch(page) {..} вместо этого. Оставьте var pager = page;.

Моя догадка заключается в том, что это как-то становится ситуацией «мимоходом».

0

return выведет вас из функции. Полностью пропустить предупреждение. Таким образом, функция фактически работает, только она делает это тихо.

Смежные вопросы