我发现如果你想在不点击的情况下阻止触发点击事件,你必须将你的调用更改为function(){ - here-}。
self.mainRoutes = ko.observableArray([]);
for (var i=0;i<json.routes.length;i++){
self.mainRoutes.push( {
idRoute: json.routes[i].idRoute,
nameRoute: json.routes[i].name,
shortRoute: json.routes[i].short,
descriptionRoute: json.routes[i].description,
mapRoute: json.routes[i].map,
col1: json.routes[i].col1,
col2: json.routes[i].col2,
col3: json.routes[i].col3
} );
}
self.hover = ko.observable("0");
self.makeHover = function(folder) {
self.hover(folder); self.quizDo(); self.changeColors();
};
Html:
<section class="mar0" data-bind='foreach: mainRoutes'>
<div class="stripe40" data-bind='click: function(){$root.makeHover(idRoute)}, css: {gradBlack: idRoute !== $root.hover() ,gradGold: idRoute === $root.hover() ,tGold: idRoute === $root.hover() }'><h3><span class="numbered" data-bind='text: idRoute'></span> <!--ko text: nameRoute--><!--/ko--></h3></div>
<div data-bind='visible: idRoute === $root.hover()'>
<p data-bind='text: shortRoute'></p>
<div class="l100">
<a href="#" class="but-black gradBlack shad-bot mar-bot" data-bind="click: function () {$root.choose('0text','PopText',nameRoute,descriptionRoute,'2routes')}, text: $root.pickONE('aside',4)"></a>
</div>
</div>
</section>
问题出在这个部分:<div class="stripe40" data-bind='click: ...
a)我留下点击:$ root.makeHover(idRoute)=&gt;自动开火
b)我改为:click:function(){$ root.makeHover(idRoute)} - &gt;发送错误的值,大多数是未定义的
你能帮我编辑这部分代码吗?我认为错误只在那里(如果我放到代码的末尾:click:makeHover(“0”)=它经历了一切,但我在页面加载结束时重置它。
答案 0 :(得分:0)