在淘汰火灾中点击事件

时间:2013-12-04 10:06:15

标签: javascript jquery knockout.js

我发现如果你想在不点击的情况下阻止触发点击事件,你必须将你的调用更改为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”)=它经历了一切,但我在页面加载结束时重置它。

1 个答案:

答案 0 :(得分:0)

看看here

我删除了部分代码beucase我没有全部。 如果我理解你想要的东西你只需要使用

click: $root.makeHover

在你将收到路线对象的函数中,我猜它不仅仅是你需要的。