2016-03-23 7 views
-3

ich einige Anker-Tags als Listenelement in einem Menü, wo auf jedem Artikel, den ich eine Klasse mit dem Namen hinzugefügt haben patient-on-changeJavascript Ereignis erhöht zu werden, nachdem jedes Mal klicken

<a class="patient-on-change" href="/${controllerName}/{{type}}/{{originId}}"> 

Auf Dokument bereit ich einige Code hinzugefügt haben, wie folgt :

$('a.patient-on-change').on('click', function(e){ 
      if (window.localStorage.getItem('isStopWatchReset') == 'false' || window.localStorage.getItem('isStopWatchReset') == false) { 
       var confirmStr = "You are about to change the patient. If change, the data will be deleted. Do you want to Continue ?"; 
       if (!confirm(confirmStr)) { 
        e.preventDefault(); 
       } else { 
        var stopWatch = new StopWatch(); 
        stopWatch.stopCountingOnDisplay(); 
        stopWatch.resetDisplays(); 
        window.localStorage.setItem('isStoppedStopWatch', false); 
        window.localStorage.setItem('isStopWatchReset', true); 
       } 
      } 
     }); 

Und mein Link hier >>>

{{#each nodeList}} 
    {{#detail}} 
    <li> 
    {{#if mayBeLeaf}} 
     <a href="/${controllerName}/{{type}}/{{originId}}" class="hasGlyphicon{{#if noLink}} menuNoLink{{/if}}"> 
      {{nodeNm}} 
      <span class="glyphicon glyphicon-expand pull-right" title="Click icon to expand menu" 
        data-action="expand" 
        data-ctrl="${controllerName}" 
        data-node-id="{{nodeId}}"<%-- node-id translates to nodeId in the JavaScript data property --%> 
        data-origin-id="{{originId}}"<%-- origin-id translates to originId in the JavaScript data property --%> 
        data-type="{{type}}" 
        data-level="{{level}}" 
        data-row="{{row}}"></span> 
     </a> 
    {{else}} 
     <a class="patient-on-change" href="/${controllerName}/{{type}}/{{originId}}"> 
     {{#if detail.flagDt}}<span title="Care Notes Complete" class="glyphicon glyphicon-ok-sign"></span>{{/if}} {{nodeNm}}</a> 
    {{/if}} 
    </li> 
    {{/detail}} 
{{/each}} 

Nun ist die erzeugt Problem ist, dass beim ersten Klick auf einen Gegenstand die Aktion nicht ausgelöst wird. Aber ab dem zweiten Mal feuert es die Aktion aber jedes Mal, wenn ich auf ein Element klicke, wird das alert jedes Mal um 1 erhöht. Ich kann e.preventDefault() hier nicht verwenden, da ich etwas Code ausführen muss. Kann mir bitte jemand bitte dabei helfen?

+4

Könnten Sie eine [Fiddle] (https://jsfiddle.net/) erstellen, um zu demonstrieren? –

+0

Sie führen diesen Code (oder etwas Ähnliches) bei jedem Klick erneut aus. Es gibt nicht genug Code in der Frage, um genau zu sagen, was das Problem ist. – JJJ

+1

Sie haben das Klickereignis nicht ordnungsgemäß geschlossen. Entfernen Sie zusätzliche schließende Klammern und versuchen Sie – Johncena365

Antwort

-1

Ihr Code wird nicht benötigt }. Es sollte so sein

$('a.patient-on-change').on('click', function(e){ 
    alert('hello'); 
}); 
+0

das Extra} war ein Tippfehler –

Verwandte Themen