0

この質問は何度か聞かれると思いますが、良い解決策が見つかりません

ダイアログ内にこのhtmlパーツとhtmlがあります

<a href="#" title="3" class="button color" id="learnmore">Learn More</a>
     <div id="dialogID" class="learnmore-dialog" title="More Information" style="display:none;">
    <h4 data-bind="text: ProgramName"></h4>
      <strong>Program Objectives</strong>:
        <span data-bind="text: ProgramObjective"></span>
       <strong>Program Speaker</strong>:
       <br><span data-bind="text: Speacker"></span>
       <br>
       <br><strong>Program Locations</strong>:
        <table>
        <tbody data-bind="foreach: displocation">
        <tr>
        <td><span data-bind="text: Address"></span>
        <br><span data-bind="text: LocationName"></span>
        <br><span data-bind="text: City"></span>, <span data-bind="text: State"></span> <span data-bind="text: Zip"></span>
        </td>
         <td>
        <span data-bind="text: ProgramLocationStartDateString"></span>-----<span data-bind="text: ProgramLocationEndDateString"></span>
         </td>
          </tr>
         </tbody></table>
          </div>

そして私はスクリプトを持っています

 <script>
     $("#learnmore").click(function (e) {
       e.preventDefault();
       var winW = $('#main .container').width();
        if (winW > 767)
         winW = winW - 200;
         var prid = $(this).attr("title")
       $.getJSON('http://getjson', function (result) {
          var viewModel = ko.mapping.fromJS(result);
          ko.applyBindings(viewModel);
          })
         $("#dialogID").dialog({
       width: winW,
          modal: true
       });
     });
        </script>

問題は、このエラーが発生していることです

同じ要素にバインディングを複数回適用することはできません。

明らかに、ボタンがクリックされるたびにバインディングを適用するため、新しいjsonを取得して、この問題を解決するか、別の方法で実行できます ありがとう

4

1 に答える 1