2015-02-04 2 views
0

У меня есть страница с таблицей ряда записей в нейпередавая переменную из-данных атрибута OnClick функции

Каждая строка имеет кнопку на нем, я хочу, чтобы добавить событие OnClick так выстреливает всплывающее сообщение, если они хорошо это страница перенаправляет на другую страницу, проходящей найденное значение в атрибуте данных, но я не могу заставить его работать

Jquery выглядит следующим образом:

  var aFeatures = document.querySelectorAll(".sweet-roll"); 
     for (var i = 0; i < aFeatures.length; i++) { 
        aFeatures[i].onclick = function() { 
         swal({ 
          title: "Rollback To Selected Version?", 
          text: "Are you sure you want to rollback to the selected version?", 
          type: "warning", 
          showCancelButton: true, 
          confirmButtonClass: 'btn-danger', 
          confirmButtonText: 'Yes, Rollback', 
          closeOnConfirm: false, 
          //closeOnCancel: false 
         }, 
         function(){ 
          window.location.href="/cms/rollback.aspx?id="+$(this).data('uuid'); 
         }); 
        }; 
       } 
      }; 

Так что каждая кнопка с классом «сладкокислой roll 'получает событие onclick.

Каждый HTML строка выглядит следующим образом:

<a class="btn btn-app sweet-roll" data-uuid="97aaa88c-ac9f-11e4-807b-0026b9ba6b95"><i class="fa fa-reply-all"></i>Rollback</a> 

Но твердит значение не определено, как если бы оно не могу найти значение данных-UUID?

+0

Смешивание JQuery и чисто JS? Вы не можете использовать '$ (this)' like this –

ответ

0

Ваш this ссылается на вызывающего абонента SweetAlert, но не на ваш элемент. Что вам нужно сделать, это сохранить его в какой-либо переменной, скажем _this

var aFeatures = document.querySelectorAll(".sweet-roll"); 

    for (var i = 0; i < aFeatures.length; i++) { 
       aFeatures[i].onclick = function() { 
        var _this = this 

        swal({ 
         title: "Rollback To Selected Version?", 
         text: "Are you sure you want to rollback to the selected version?", 
         type: "warning", 
         showCancelButton: true, 
         confirmButtonClass: 'btn-danger', 
         confirmButtonText: 'Yes, Rollback', 
         closeOnConfirm: false, 
         //closeOnCancel: false 
        }, 
        function(){ 
         window.location.href="/cms/rollback.aspx?id="+$(_this).data('uuid'); 
        }); 
       }; 
      } 
     }; 
Смежные вопросы