Я генерирую кнопки с помощью jQuery, используя:
var button_a = $("<button />", {
text: 'A',
click: do_something,
class: "button a"
});
var button_b = $("<button />", {
text: 'B',
click: do_something,
class: "button B"
});
function do_something(){
alert("Button Was pressed");
}
Я хотел бы сделать так, чтобы сделать do_something
:
function do_something(name){
alert("Button " + name + " was pressed");
}
Как я могу изменить создание кнопки jQuery, чтобы я мог передать name
click: do_something
?
Единственное решение для создания закрытия перед рукой?
Вы можете просто указать name
или id
при создании кнопки и получить доступ к ней в
dosomething()
используя this
ключевое слово, например
function do_something(){
alert("Button"+ this.id+ " is pressed")
}
здесь, this
будет ссылка на кнопку, которая нажата..
На самом деле this
относится к кнопке, которую вы создали, но для этого требуется, чтобы все, что нужно было присутствовать на элементе DOM заранее.
Если вам нужна дополнительная информация, закрытие будет более приятным решением:
(function ($) {
var name = 'foo',
someOtherData = { foo: 'bar' },
button = $('<button>', {
'text': 'yaay',
'click': function () {
// i can use name, button in here
}
);
}(jQuery));
Конечно, функция самоисполнения может быть переписана с помощью аргументов, которые вы можете передать на свою кнопку. Все зависит от того, сколько информации вам нужно при щелчке.