jQuery указатель на элемент, по которому щелкают - PullRequest
0 голосов
/ 29 декабря 2010

Надеюсь, это глупо, но моя голова сегодня перегружена :) У меня есть этот код, и мне нужно сохранить указатель на элемент, на который нажали, и передать его в функцию обратного вызова.Точно это кнопка отправки и после правильной отправки ajax формы я хочу удалить их содержимое.Я перепробовал множество комбинаций parent (), children (), .., но это не работает:

$("form :submit").click(function () {  
            var element = this;  
            $(this).ajaxSubmit(function(payload, element){  
            $.nette.success(payload);  
            $(element).parent().children(".addStatusTextArea").val("");  
            hideMessage();  
        }  
    );  

    return false;  
});

Ответы [ 2 ]

3 голосов
/ 29 декабря 2010

Проблема в том, что element равно также , указанному в ваших параметрах для обратного вызова, оставьте это, например, так:

$("form :submit").click(function() {
  var element = this;
  $(this).ajaxSubmit(function(payload) { //no element here in params
    $.nette.success(payload);
    $(element).parent().children(".addStatusTextArea").val("");
    hideMessage();
  });
  return false;
});

Когда он находится в параметрах, определяется more local element, а не то, что вы установили непосредственно перед этим. Я не уверен, что ваш относительный вызов .parent().children() правильный (это может быть .siblings(".addStatusTextArea"), если это так), не видя вашей разметки ... но ваша главная проблема - element не в том, что вы хочу.

1 голос
/ 29 декабря 2010

Удалить параметр элемента из функции, переданной ajaxSubmit.т.е.

$("form :submit").click(function () {
    var element = this;
    $(this).ajaxSubmit(function(payload){
        $.nette.success(payload);
        $(element).parent().children(".addStatusTextArea").val("");
        hideMessage();
    });
    return false;
});
...