Показать переменные jquery

0

У меня есть этот скрипт здесь, я не знаю, как передать эту переменную, чтобы отобразить ее.

   function show(a) {
    this.name = a;
    $("#box").show();
    $(document).on("click","#box",function() {   
    alert(this.name);
    } ); 
    }

я знаю, что могу просто предупредить об этом

оповещения (а);

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

оповещения (this.name);

  • 2
    потому что контекст this не одинаков в этих двух местах .... Я думаю, что вы можете просто использовать function show(a) { $("#box").show().click(function () { alert(a); }); }
Теги:

2 ответа

0
Лучший ответ

Вы можете использовать bind:

function show(a) {
    this.name = a;
    $("#box").show();
    $(document).on("click","#box",function() {   
        alert(this.name);
    }.bind(this) ); 
}

bind возвращает функцию, привязанную к определенному контексту. Таким образом, у вас есть правильный контекст. Когда вы изменяете name свойства, объект контекста, ваше предупреждение показывает правильное name.

См. Https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind

Также хорошая статья о Function.prototype.bind: http://coding.smashingmagazine.com/2014/01/23/understanding-javascript-function-prototype-bind/

  • 0
    Спасибо за вашу помощь.
0

Поскольку определяется в замыкании, вы можете просто использовать везде, вместо того, чтобы пытаться работать с a a this.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню