1

I did declare click like that in my template

<script id="flipTemplate" type="text/html">

    <div data-bind="attr: {id:  ImageName }, click: alert('a')">
    ......

</script>

But alert('a') executing straight away i clicking my button which is generated dynamic content instead of alerting when i am clicking on that div.

is there any way how to fix that?

4

2 回答 2

2

knockoutjs 期望一个函数作为点击绑定参数,而不是任意的 js 语句。

因此,您需要将警报调用包装到匿名函数中

<div data-bind="attr: {id:  ImageName }, click: function(data, event) { alert('a') } ">

但我强烈建议将所有逻辑放入您的 ko 视图模型中,并在绑定中使用视图模型方法。所以不要将逻辑放入data-bind表达式中。

于 2012-08-22T17:50:53.503 回答
0

我不确定你为什么要这样设置你的 Div。这会更好吗?

    <div id="mydiv"/>

    <script>
      $(document).ready(function() {
           $("#mydiv").click(function(ev){
             ev.preventDefault();
             alert("a");
           });
      });
    </script>
于 2012-08-22T17:42:19.180 回答