Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Присвоить значения атрибуту из переменной (https://javascript.ru/forum/dom-window/57537-prisvoit-znacheniya-atributu-iz-peremennojj.html)

apisklov 10.08.2015 20:01

laimas,
можете пожалуйста пояснить, что вот это значит
this.init = function(widjetID, config)

что такое this? init - переменная с результатом функции?

Вроде разобрался с получением данных по клику на ссылку, как вы и писали. Но вот теперь не добавляется все это в корзину, подозреваю, что дело все в этих this

Вы писали про obj:
<script>
$(document).ready(function(){  
   // $('.item_img').loupe({ width: 200, height: 150, loupe: 'loupe'}); 
    
    // Форма для валидации
    $.validationEngine.defaults.scroll = false;
    var contactForm = $('#formToSend');
    // Подключаем корзину
    cart = new WICard("cart");
    var config = {'clearAfterSend':true, 'showAfterAdd':true, 'valudate':contactForm};
    cart.init("basketwidjet", config);
    
    
});	
document.addEventListener('visibilitychange', function(e) {
cart.init("basketwidjet", {});
}, false);
</script>


cart = new WICard("cart")

laimas 11.08.2015 05:13

this - дословно переводится как "это". В JS определяет контекст.

Не знаю, что вы там по клику сделали, но если плагин добавляет в корзину только по щелчку кнопки (что видно по нативному обработчику), но аргументы функции можно и расширить addToCart(), но еще проще

$('body').on('click', 'button', function() {
    cart.addToCart($(this.parentNode).find('input'))
   //ну или саму кнопку передавать в плагин, а в нем уже искать поле ввода ну а далее уже все в нем брать  
});
//в плагине
this.addToCart = function(curObj) {
    //curObj, это поле ввода, а все остальные данные типа '002','Зонт1',1500
    //будет содержать это же поле ввода, а не кнопка, в атрибуте data-val,
    //куда сервер и поместит данные при выводе, 
    //только не надо обрамлять 1500 в кавычки, это не строка, а число, 
    //и зря отдавать клиенту два байта на значение, да еще никчемные пробелы между ними....
    //эти значения получаются как
    var d =  curObj.data('val').split(',');
    //ну и останется сопоставить их "id", "name", "price"   
}


Разберетесь?

apisklov 11.08.2015 21:19

laimas,
огромное спасибо. Благодаря вашим подсказкам и советам, сделал то, что хотел.


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