Опубликовать обновление, чтобы показать фактический код, используемый, также один из комментариев был общедоступным, недействителен в jquery, если так, я должен просто отказаться от публикации при создании функций?jQuery триггерное событие на элементе связывания
У меня есть простая страница просмотра, состоящая из мастера и нескольких подробных записей.
сценарий выглядит следующим образом:
$(document).ready(function(){
initialise();
$("#order_list").on("dblclick",".show_order",function(){
alert('click event initiated for show_order');
});
function initialise(){
$('#order_list').empty();
$('#drop_list').empty();
$('#info').empty();
var drop_id = "<?php echo $this_drop ?>";
$.post('<?php echo site_url("schedules/get_drop");?>',{'drop_id':drop_id},
function(response){
$.each(response,function(key,val){
drop_info = '';
drop_info += 'DROP ID: ' + val.drop_id + '</br>';
drop_info += 'DELIVERY POINT: '+val.destination + '</br>';
drop_info += 'NO OF ORDERS: ' + val.noOfOrders + ' ' + 'ESTIMATED WEIGHT: ' + val.weight + ' ' + ' ESTIMATED TRAVEL DISTANCE: '+ parseFloat(val.distance)+ ' KM';
$('#drop_info').empty();
$('#drop_info').append(drop_info);
});
},'json');
//populate matching order info
$.post("<?php echo site_url('schedules/get_drop_orders');?>",{'drop_id':drop_id},
function(data){
$.each(data,function(key,val){
content = '';
content += "<div class='show_order' id='"+val.order_id+"' data-weight='"+val.est_weight+"' data-qty='"+val.qty+"' data-distance='"+val.est_distance+"' data-origin='"+val.s1lat+','+val.s1lon+"' data-destination='"+val.s2lat+','+val.s2lon+"'>";
content += "<a href='#' id='"+val.order_id+"'> Order No: "+val.order_id+"</a> Collection Date: "+val.req_col_time.substr(0,10)+"</br>";
content += "Collection Point: <a href='#' id='"+val.site1id+"'>"+val.collection+"</a></br>";
content += "Delivery Point: <a href='#' id='"+val.site2id+"'>"+val.destination+"</a></br>";
content += "</div>";
$('#order_list').append(content);
});
},'json');//end of post loop
$("#order_list").trigger("dblclick");
}
});
</script>
играть с этим я могу получить кнопку, чтобы вызвать на прилагаемых элементов, но я не могу получить кнопку, чтобы вызвать из события инициализации по какой-то причине
ответ
это происходит потому, что обработчик событий добавляется после того, как событие инициируется
$(document).on('click', '.show_order', function() {
console.log('i was clicked', this);
});
//call the initialise function to populate the info through ajax calls
initialise();
function initialise() {
var content = '';
content += '<div class="show_order" id="dynamically generated">item 1</div>';
content += '<div class="show_order" id="dynamically generated">item 2</div>';
content += '<div class="show_order" id="dynamically generated">item 3</div>';
$('body').append(content);
$('.show_order').trigger('click');
}
Демо: Fiddle
В этом случае необходимо использовать делегирование событий, потому что, когда обработчик события регистрируется целевые элементы еще не добавлены к йоту
Общайтесь, ребята, решение, которое использовало 'setTimeout()', получило 2 upvotes, где это получило downvote после того, разрешите его –
до сих пор триггер уволен от всех вас, проблема теперь заключается в том, что он должен срабатывать только один раз при инициализации, а не для каждого добавленного элемента –
@TerenceBruwer после инициализации, для которого он должен быть запущен –
Try это,
$(document).ready(function() {
//call the initialise function to populate the info through ajax calls
initialise();
function initialise() {
var content = '';
content += '<div class="show_order" id="dynamically generated">item 1</div>';
content += '<div class="show_order" id="dynamically generated">item 2</div>';
content += '<div class="show_order" id="dynamically generated">item 3</div>';
$('body').append(content);
$('body').on('click','.show_order',function(){
alert('i was clicked');
});
$('.show_order').trigger('click');
}
});
все еще не работает http://jsfiddle.net/arunpjohny/YML7S/2/ –
проверьте свою консоль .......... –
http: //jsfiddle.net/YML7S/3/ –
Попробуйте это
initialise();
function initialise(){
content = '';
content += '<div class="show_order" id="dynamically generated">item 1</div>';
content += '<div class="show_order" id="dynamically generated">item 2</div>';
content += '<div class="show_order" id="dynamically generated">item 3</div>';
$('body').append(content);
$(document).on('click','.show_order',function(){
alert('i was clicked');
});
$('.show_order').trigger('click');
}
все еще не работает http: // jsfiddle.net/arunpjohny/YML7S/2/ –
попробовать что-то вроде этого, FIDDLE
$('body').on('click', '.show_order', function() {
alert('i was clicked');
});
initialise();
Я запустил скрипку, когда срабатывает триггер для каждого элемента, приложенного извините –
, потому что $ ('. show_order') получит три элемента, поэтому три события будут запущены –
Дайте некоторое время ожидания для функции инициализации так, что до того, как функция вызывается, дом загружен и событие щелчка связываются с элементом
Попробуйте
$(document).ready(function(){
setTimeout(function(){initialise();},100);
$('body').on('click','.show_order',function(){
alert('i was clicked');
});
function initialise(){
content = '';
content += "<div class='show_order' id='dynamically generated'>item 1</div>";
content += "<div class='show_order' id='dynamically generated'>item 2</div>";
content += "<div class='show_order' id='dynamically generated'>item 3</div>";
$('body').append(content);
$('.show_order').trigger('click');
}
});
- 1. Событие связывания Jquery на элементе не работает
- 2. Триггерное событие клика с помощью клавиш-модификаторов на элементе ввода
- 3. Триггерное событие на кнопке переключателя
- 4. JQuery триггерное событие o щелчок гиперссылки
- 5. триггерное событие на кнопке браузера нажмите кнопку
- 6. JQuery событие связывания
- 7. JQuery триггерное событие в окне iframe
- 8. Изображение загружаемое триггерное событие
- 9. Триггерное размытие на сфокусированном элементе, при щелчке за пределами iFrame
- 10. Событие связывания jQuery на загрузке страницы
- 11. триггерное событие на частоте шага ввода звука
- 12. делегированное событие связывания в JQuery
- 13. событие связывания проблема в JQuery
- 14. Живое событие на элементе iFrame с jQuery
- 15. событие jquery click на динамически сгенерированном элементе
- 16. Триггерное событие щелчка другого элемента в угловом?
- 17. вопрос в элементе связывания
- 18. Нажмите событие на элементе
- 19. JQuery триггерное событие click для каждого элемента массива
- 20. Перехватив событие связывания с использованием Jquery мобильного
- 21. Нокаут Autogrow связывания удаляет изменить событие связывания
- 22. Как удалить ранее событие связывания в jQuery
- 23. javascript триггерное событие при щелчке элемента p
- 24. Событие связывания не работает в jquery
- 25. JQuery несколько выбирает триггерное изменение
- 26. fullpage.js триггерное событие при прокрутке вниз?
- 27. Магическое триггерное событие после пользовательской функции возможно?
- 28. Триггерное событие, но не оба в backbone.js
- 29. jQuery триггерное изменение с прикованным ajax select
- 30. onclick событие на динамическом элементе не работает
В javascript нет публичной функции, это синтаксическая ошибка – adeneo
content + = '"