Основные проблемы с jQuery - PullRequest
1 голос
/ 10 декабря 2010

Я давно борюсь с jQuery.Он очень мощный, и есть много замечательных вещей, которые мы можем сделать с помощью jQuery.

Моя проблема в том, что я использую много функций jQuery одновременно.Например, у меня есть сайт, который отображает 12 элементов на страницу, и я могу разбивать страницы на страницы с помощью jquery.На той же странице я реализовал кнопку thumpsUp, в которой также используется jQuery.

Чем больше функций jQuery я использую, тем сложнее их правильно расположить.Например:

$(document).ready(function() {
 $(".cornerize").corner("5px"); //cornerize links
 $('a#verd').live('click', exSite); //open iframe
 $("a.tp").live('click', thumpsUp); //thumps up
 $("a#next").click(getProgramms); //next page
 $("a#previous").click(getProgramms); //previous page
    //for the current page reload the content
 $("a#page").each(function() {
  $(this).click(getProgramms);
 });
 //this isn't working...
 $('.smallerpost').live('click', alert('test'));
});

Посмотрите на последнюю строку кода.Я хочу выполнить оповещение при нажатии элемента div.Вместо этого на странице отображается предупреждение, когда я обновляю страницу.Клик по div не имеет никакого эффекта.

Что я делаю не так?Какова будет стратегия, чтобы иметь чистый и работающий jQuery?

Ответы [ 2 ]

3 голосов
/ 10 декабря 2010

Измените эту строку на

$('.smallerpost').live('click', function () {
    alert('test');
});

, и пока вы там ...

$("a#page").each(function() {
    $(this).click(getProgramms);
});

имеет точно такой же эффект, как:

$('a#page').click(getProgramms);

... но технически в любом случае должен быть только один элемент с id = 'page'

0 голосов
/ 10 декабря 2010

Ваш код $('.smallerpost').live('click', alert('test')); немедленно вызывает alert и передает его возвращаемое значение в функцию live в качестве второго параметра.То, что вы хотите передать, есть функция для вызова, поэтому вы хотите:

$('.smallerpost').live('click', function() {
    alert('test');
});

или

$('.smallerpost').live('click', handleSmallerPostClick);

function handleSmallerPostClick() {
    alert('test');
}

... в зависимости от того, как вы структурируете свой код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...