2017-01-12 35 views
0

我無法找到一種方法使其無需使用PHP,而且我不想使用PHP。事情是,我有一些選項的列表:如何在Javascript中點擊'<a>`時更改會話變量

enter image description here

我想設置一個會話變量,當我點擊一個鏈接。

我試圖做<a onClick="displayAllContainers();">All containers</a>然後在我的JS我試圖做

`function displayAllContainers() { 
    console.log("Display all"); 
}` 

但沒有奏效。

[編輯]這撥弄不工作,但我可以把所有的代碼,而無需使一個問題,讓500lines所以

import { Template } from 'meteor/templating'; 
 
import { Session } from 'meteor/session' 
 
import { InfosContainers } from '/both/collections/infosContainers.js'; 
 
import { InfosMachines } from '/both/collections/infosMachines.js'; 
 

 
import './main.html'; 
 
import '../imports/ui/controlPanel.js'; 
 
import '../imports/ui/container.js'; 
 
import '../imports/ui/machine.js'; 
 
import '../imports/ui/chart.js'; 
 
import '../imports/ui/controlPanel.html'; 
 
import '../imports/ui/container.html'; 
 
import '../imports/ui/machine.html' 
 

 

 
if (Meteor.isClient) { 
 
    //subscribe the publication of the server 
 
    Meteor.subscribe('infosContainers'); 
 
    Meteor.subscribe('infosMachines'); 
 
} 
 

 

 
function displayAllContainers() { 
 
    console.log("Display all"); 
 
} 
 

 

 
Template.body.onRendered(function() { 
 
}); 
 

 

 
Template.body.helpers({ 
 
    //return all objects of the collection machines with the specified state 
 
    infosMachines() { 
 
    return InfosMachines.find({}); 
 
    }, 
 
    //return all objects of the collection containers with the specified state 
 
    infos(state) { 
 
    return InfosContainers.find({stateContainer: state}); 
 
    }, 
 
    //return all containers 
 
    infosCtn(){ 
 
    return InfosContainers.find({}); 
 
    }, 
 
    //return true if we have >=1 container running. It's the emergency button 
 
    urgence() { 
 
    return InfosContainers.find({stateContainer: 'running'}).count() > 0; 
 
    } 
 
});
<!-- form containers --> 
 
         <div class="col-md-6 col-sm-12 col-xs-12"> 
 
          <div class="x_panel"> 
 
           <div class="x_title"> 
 
            <h2>Containers</h2> 
 
            <ul class="nav navbar-right panel_toolbox"> 
 
             <li><a class="collapse-link"><i class="fa fa-chevron-up"></i></a> 
 
             </li> 
 
             <li class="dropdown"> 
 
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><i class="fa fa-wrench"></i></a> 
 
              <ul class="dropdown-menu" role="menu"> 
 
               <li><a onClick="displayAllContainers();return false;">All containers</a> 
 
               </li> 
 
               <li><a href="#">Only running containers</a> 
 
               </li> 
 
               <li><a href="#">Only paused containers</a> 
 
               </li> 
 
               <li><a href="#">Only stopped containers</a> 
 
               </li> 
 
              </ul> 
 
             </li> 
 
             <li><a class="close-link"><i class="fa fa-close"></i></a> 
 
             </li> 
 
            </ul> 
 
            <div class="clearfix"></div> 
 
           </div> 
 
           <div class="x_content"> 
 
            <br/> 
 
            {{#each infosCtn}} 
 
             {{> container}} 
 
            {{/each}} 
 
           </div> 
 
          </div> 
 
         </div> 
 
         <!-- /form containers -->

+0

嘗試將href屬性設置爲href =「javascript ;;」 – rahulsm

+0

我羅納爾多,也很想有'displayAllContainers' – Jerome

+0

你檢查控制檯相同的參考錯誤或者嘗試警報 – rahulsm

回答

0

確定,所以謝謝大家爲你提供幫助,因爲你都幫我找到了解決辦法,並有它:

1)我需要使用模板在我的JS

Template.body.events({ 
    'click #anchorid': function (e) { 
     console.log("saucisse") 
    } 
}); 

2)我的活動必須使用ID在HTML,但我可以刪除的onClick

<a id="anchorid">All containers</a> 
1

試試這個, HTML

<a onClick="displayAllContainers()" href="javascript:void(0);">All containers</a> 

JS

function displayAllContainers() { 
    console.log("Display all"); 
} 

編輯

HTML

<a onClick="Meteor.call('displayAllContainers'); 
" href="javascript:void(0);">All containers</a> 

JS

Meteor.methods({ 
    'displayAllContainers': function(){ 
     console.log("Hello world"); 
    } 
}); 
+0

我得到了這個錯誤' ;:1)' – Jerome

+0

其javascript :;不是JavaScript ;; 。你用兩個;使用 :; – rahulsm

+0

在我的代碼中沒有'javascript:;' – Jerome

1

這工作,JSFiddle

<script language="javascript"> 
function displayAllContainers(){ 
    console.log("Display all"); 
} 
</script> 
<a onclick="displayAllContainers()"> 
    All Containers 
</a> 

寫你的函數類似下面,它應該工作,

displayAllContainers = function(){ 
    console.log("Display all"); 
} 

我不知道爲什麼它的工作原理,我把一個問題的話,會放在這裏的鏈接。 SO Question

+0

但我不能把''