Вход

Просмотр полной версии : Передача объекта функции


tazododu
13.01.2012, 14:41
Всем привет!
Сделал кнопочку для сабмита формы
$(".button").click(function(){
$this = $(this);
$("#form").submit();
});

$("#form").submit(function(){
console.debug( $this.attr("name") )
});

все работает. А теперь вопрос, как можно реализовать передачу объекта без использования замыкания?

Skipp
13.01.2012, 15:38
Какого объекта? Из какой функции? И куда?

tazododu
13.01.2012, 16:08
имеется несколько кнопок, и все они сабмитят форму
$(".button").click(function(){
$this = $(this);
$("#form").submit();
});
мне же необходимо выполнять определенные действия для каждого типа кнопки.

<a class="button" name="publish">Опубликовать</a>
<a class="button" name="draft">В черновики</a>
делая замыкание:
$(".button").click(function(){
$this = $(this);
$("#form").submit();
});
$("#form").submit(function(){
console.debug( $this.attr("name") )
});
я могу узнать name нажатой кнопки при сабмите. вопрос в том, как это можно сделать без замыканий?

Octane
13.01.2012, 16:11
что мешает var $btn = $(".button") написать?

tazododu
13.01.2012, 16:14
что мешает var $btn = $(".button") написать?

это и есть замыкание(поправите если нет). а как можно сделать иначе?

Octane
13.01.2012, 16:21
Да зачем делать иначе…

Ну можно так:
$(".button").click(function () {
$("#form").trigger("submit", this);
});
$("#form").submit(function (event, btn) {
$(btn).attr("name");
});

tazododu
13.01.2012, 16:58
Да зачем делать иначе…

Ну можно так:
$(".button").click(function () {
$("#form").trigger("submit", this);
});
$("#form").submit(function (event, btn) {
$(btn).attr("name");
});


Спасибо! Просто хотелось знать другие способы передачи. :write: