Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   выполнить участок кода по 2-м событиям (jQuery) (https://javascript.ru/forum/dom-window/25020-vypolnit-uchastok-koda-po-2-m-sobytiyam-jquery.html)

OlegALL 22.01.2012 16:58

выполнить участок кода по 2-м событиям (jQuery)
 
Добрый вечер, помогите повесить на данный участок кода ещё одно событие $(document).ready, т.е. чтобы этот код выполнялся при щелчке по данной кнопке и при загрузке страницы

$("#reload_btn").click(function(){ // клик по кнопке №1
			$.ajax({
				'url' : 'captcha_base64_3.php',
				'type' : 'POST',
				'dataType' : 'json',
				
				'success' : function(json) {
					// обход json-а (только по первому уровню, НЕ вглубь)
					/*console.group ('json')*/
					$.each(json, function(i,elem){
					    /*console.log ("Параметр json:",i);
					    console.log (elem);*/

						if (i == "captcha_base64"){
						$(".captcha-image").attr('src','data:image/png;base64,'+elem);
						}
						if (i=='number_of_squares'){
						  alert(elem);
						}
					});
					/*console.groupEnd('json');*/
				},
				'error' :function (xhr, ajaxOptions, thrownError){
                    console.warn(xhr.status);
                    console.warn(thrownError);
                }
			});
		});

dwarf 22.05.2014 18:59

Цитата:

Сообщение от OlegALL
$("#reload_btn").click(function(){ // клик по кнопке №1

может так ?
$(document).ready(function(){
//тут твоя функция 
function yourName() {......} , и далее
$("#reload_btn").click(function (){ 
   yourName();
}
});

Erolast 22.05.2014 20:33

Цитата:

Сообщение от dwarf (Сообщение 312926)
может так ?
$(document).ready(function(){
//тут твоя функция 
function yourName() {......} , и далее
$("#reload_btn").click(function (){ 
   yourName();
}
});

Создание именованной функции только после загрузки DOM? Это что еще за треш?

function some_function()
{
               $.ajax({
                'url' : 'captcha_base64_3.php',
                'type' : 'POST',
                'dataType' : 'json',
                 
                'success' : function(json) {
                    // обход json-а (только по первому уровню, НЕ вглубь)
                    /*console.group ('json')*/
                    $.each(json, function(i,elem){
                        /*console.log ("Параметр json:",i);
                        console.log (elem);*/
 
                        if (i == "captcha_base64"){
                        $(".captcha-image").attr('src','data:image/png;base64,'+elem);
                        }
                        if (i=='number_of_squares'){
                          alert(elem);
                        }
                    });
                    /*console.groupEnd('json');*/
                },
                'error' :function (xhr, ajaxOptions, thrownError){
                    console.warn(xhr.status);
                    console.warn(thrownError);
                }
            });
}

document.ready(some_function);
$("#reload_btn").click(some_function);

Ну, естественно, переназови some_function как там тебе надо.

melky 22.05.2014 23:18

Цитата:

Сообщение от Erolast
Ну, естественно, переназови some_function как там тебе надо.

вот-с аналогичное решение, но чутка лучше разделённое
// Биндим обработчик клика
$("#reload_btn").click(function () { /*тут содержимое функции some_function  */ });

// При загрузке страницы программно кликаем по кнопке
$($.proxy($.fn.trigger, $("#reload_btn"), 'click'));

// А точнее передаём частично вызванный $('#reload_btn').trigger('click') 
// в обработчик загрузки DOM-дерева
// который вызовет содержимое some_function


Часовой пояс GMT +3, время: 09:04.