2015-09-29 3 views
0

Мне интересно, есть ли способ получить идентификатор элемента без щелчка. У меня есть данные внутри div, которые нуждаются в обновлении и печати. Я могу сделать именно то, что хочу, щелкнув div. Данные обновляются, печатаются и исчезают, пока не появится следующий div. Это jQuery, который я использую.Получить идентификатор элемента без нажатия

$(document).ready(function(){ 
    $('.store').click(function(){ 
     the_id =$(this).attr('id'); 
     $(this).fadeOut('slow'); 

     $.ajax({ 
      type: 'POST', 
      url: "update.php", 
      data:{id:the_id}, 
      success:function(){ 
       print_div(); 
      } 
     }); 
    }); 
}); 

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

+0

* Что-то * должно вызвать js/jquery. В вашем примере есть два триггера: 'click' и' document.ready'. Когда вы знаете, что вам нужно обновить его? –

+0

Итак, перейдем к элементам и сделаем вызовы Ajax .... – epascarello

+0

вы можете активировать клик из документа, чтобы избежать циклического перехода по многим элементам. – guradio

ответ

0

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

$(document).ready(function() { 
    $('.store').each(function() { 
     var the_id = $(this).attr('id'); 
     $(this).fadeOut('slow'); 

     $.ajax({ 
     type: 'POST', 
     url: "update.php", 
     data: { 
      id: the_id 
     }, 
     success: function() { 
      print_div(); 
     } 
     }); 
    }); 
}); 
+0

Работал красиво. Спасибо. Однако по какой-то причине print_div() не будет работать должным образом. Поэтому я просто написал функцию внутри успеха: function(), и он работал точно так, как я хотел. – user3131412

0

Короче говоря, нет.

JavaScript полагается на события - независимо от того, установлен ли он или создан путем взаимодействия (принудительного или органического) для добавления методов в стек вызовов. Если вы хотите, вы можете инициировать событие (принудительное событие), используя метод триггера jQuery для события. С другой стороны, вы можете настроить таймер, используя setInterval (регулярное действие) или setTimeout (замедленное действие) для запуска события. Помимо этого, вы должны полагаться на взаимодействие пользователя для запуска событий.

Вы можете сообразить, что вызывает функцию обратного вызова методу щелчка - вы можете посмотреть на поведение мыши или прокрутки пользователя, а также перезагрузить элемент или даже на какое-то событие клавиатуры. Это действительно вопрос того, что обеспечит лучший пользовательский интерфейс в вашем контексте.

Вот некоторые шаблонные, чтобы помочь:

$(document).ready(function(){ 
    $('.store').click(storeHandler); 
    $('#someOtherElement').on('event', storeHandler); 
    setTimeout(storeHandler, 1000); 
}); 

function storeHandler(event) { 
    var theElement = $(event.target); // the event object is very useful 
    var theId = theElement.attr('id'); 
    theElement.fadeOut('slow'); 

    $.ajax({ 
     type: 'POST', 
     url: "update.php", 
     data:{id:the_id}, 
     success:function(){ 
      print_div(); 
     } 
    }); 
} 

Цель состоит в том, чтобы позволить Вам повторить поведение данное какое-то событие.

+0

Я до сих пор довольно новичок в javascript и jquery (обратите внимание на уровень моего вопроса). Код не работал для меня, или у меня не было достаточно знаний, чтобы он работал. Спасибо за помощь в любом случае. – user3131412

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