Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Вызов функции (https://javascript.ru/forum/dom-window/73082-vyzov-funkcii.html)

j0hnik 20.03.2018 12:02

Янковиц,
можно

j0hnik 20.03.2018 12:06

Янковиц,
только вот один вопрос: нафига вам это все?

если бы стояла задача избавиться полностью от библиотеки я бы понял, но зачем такие гибриды непонятные?

Янковиц 20.03.2018 12:12

У меня сайт на Wordpress, там библиотека на jQuery по умолчанию стоит, и ajax запросы завязаны с этой библиотекой. Плюс часть функционала сделано на Javascript.
Да и ajax на JS я не очень понимаю. Переписывать на jQ - проблематично.
В общем... дилема у меня...

j0hnik 20.03.2018 12:17

чем проблематично вместо этого
document.getElementById('element').onclick = function(e){
    // вот сюда засунуть функцию jQuery helloWorld()
}

написать
$('#element').click(function(e){
    // вот сюда засунуть функцию jQuery helloWorld()
});

раз библиотека есть пользуйтесь

j0hnik 20.03.2018 12:21

Цитата:

Сообщение от Янковиц (Сообщение 481035)
Плюс часть функционала сделано на Javascript.
.

так пусть остается, вы же сейчас что-то новое сами написать хотите в стиле гибрид, но в вашем случае смысла то особого в этом нет.

Янковиц 20.03.2018 12:27

Проблема в том, что если сначала объявляю:
(function( jQuery ){
	   jQuery.fn.helloWorld = function() {
			var _this = jQuery(this);
			var id = _this.val();
			jQuery.ajax({
				url: url,
				type: 'POST',
				data: ({
					id : id,
				}),
				success: function(data){
					_this.html(data);
				}
			});
		}; 
	})( jQuery );

а потом использую:
$('#element').click(function(e){
    helloWorld();
});

Ошибку выдает:
Uncaught ReferenceError: helloWorld is not defined
    at HTMLDivElement.

j0hnik 20.03.2018 12:29

$('#element').click(function(e){
			var _this = jQuery(this);
			var id = _this.val();
			jQuery.ajax({
				url: url,
				type: 'POST',
				data: ({
					id : id,
				}),
				success: function(data){
					_this.html(data);
				}
			});
});

Янковиц 20.03.2018 12:33

Просто, эта функция несколько раз будет вызываться по разным событиям

j0hnik 20.03.2018 12:37

function blabla(){
			var _this = jQuery(this);
			var id = _this.val();
			jQuery.ajax({
				url: url,
				type: 'POST',
				data: ({
					id : id,
				}),
				success: function(data){
					_this.html(data);
				}
			});
		}
		$('#element').click(blabla);

Янковиц 20.03.2018 13:08

Благодарю за наводки :) :thanks:


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