Как я могу использовать backbone.js для публикации входных значений в других областях сайта?

0
<div class="fmMenu accordion">

    <p class="menuItem">Cleaning &amp Specials Inspection
    <input type="checkbox" name="include" value="Cleaning&SpecialsInspectionSelect" class="headerCheckbox"></p>

    <div><h2>
             Notes<br /><textarea name="Clean&SpecialsInspectionNotes" value="" rows="4" cols"50"></textarea></h2>Start date<input type="text" class="datepicker" />       
    </div>




    <p class="menuItem">Porter Service
    <input type="checkbox" name="include" value="PorterServiceSelect" class="headerCheckbox"></p>
    <div><h2>
             Notes<br /><textarea name="PorterServiceNotes" rows="4" cols"50"></textarea></h2>Start date<input type="text" class="datepicker" />
    </div>



    <p class="menuItem">Vacancy Inspection and Cleaning
    <input type="checkbox" name="include" value="VacancyInspectionandCleaningSelect" class="headerCheckbox" id="joyridestop4"></p>
    <div><h2>
             Notes<br /><textarea name="VacancyInspectionandCleaningNotes" rows="4" cols"50"></textarea></h2>Start date<input type="text" class="datepicker" />
    </div>

</div>

<ol>
                            <li style="display:none" class="Cleaning&SpecialsInspectionSelect">Cleaning &amp Specials Inspection</li>
                            <li style="display:none" class"PorterServiceSelect">Porter Service</li>
                            <li style="display:none" class"VacancyInspectionandCleaningSelect">Vacancy Inspection and Cleaning</li>
</ol>



<div class="showHere"><div>

Это мой аккордеон jQuery. Я хочу использовать backbone.js, чтобы сделать это так, если вы нажмете на флажок "Очистка и специальные функции", а также флажок "VacancyInspectionandCleaningSelect" и заполните остальные входы для каждого аккордеонного контента, они появятся в div "showHere".

Вот какой код я пробовал. Все это использует:

$(document).ready(function(){
var checkBoxArray = new Array(
              "Cleaning&SpecialsInspectionSelect",
              "PorterServiceSelect",
              "VacancyInspectionandCleaningSelect",
              );
});

Вот некоторые из них я попробовал:

for(i = 0; i < checkBoxArray.length - 1; i++){
    $("input[value=" + checkBoxArray[i] + "]:checked ~ ." + checkBoxArray[i]).css(
    "display", "inherit"
    );
} 

Вот еще несколько:

for(i = 0; i < checkBoxArray.length - 1; i++){
    var overviewElement = $("." + checkBoxArray[i]).hide(),
        ifChecked = $("input[value=checkBoxArray[i]]").click(function(){
            overviewElement.toggle(ifChecked.is(":checked"));
    });
}

Спасибо вам за помощь!

  • 0
    Данные. Я хочу получить входные данные из текстовых полей в другую часть сайта.
Теги:
replication
backbone.js

1 ответ

0

Обычный подход - использовать глобальную шину событий. Сделайте копию Backbone.Events где-нибудь, что каждый может ее увидеть:

app.event_bus = _({}).extend(Backbone.Events);

Тогда представление, являющееся источником данных, вызовет событие:

app.event_bus.trigger('some_event', data);

и другое представление будет прослушивать событие:

initialize: function() {
    this.listenTo(app.event_bus, 'some_event', this.some_method);
},
some_method: function(payload) {
    // 'payload' will be the 'data' from the 'trigger' call
}

Демо: http://jsfiddle.net/ambiguous/9zD7v/

Ещё вопросы

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