点击Bootstrap评级

时间:2014-04-25 06:30:16

标签: javascript jquery angularjs twitter-bootstrap

我有一个Bootstrap Rating组件,我必须使用on-leave方法来调用我的javascript函数。除了在IE中,所有其他浏览器也在点击事件上执行on-leave功能。但是在IE中,直到我离开星星,这个功能才被调用。我甚至无法使用ng-click,因为Bootstrap Rating组件不支持(我的角度版本是1.1.5)

<div id="ratingDiv{{$index}}" style="display:none;" class="ratingDivClass">
<span class="ratingPoorClass">Poor</span>
<rating id="rateStars" onclick="$jq('#loader').show();" value="userRating" max="5" 
on-hover="hoveringOver(value)" 
on-leave="saveRating(message.id,userRating,$index,message.entity);"></rating>
<span class="ratingGoodClass">Very Good</span>
</div>

问题:在IE中,直到我离开div,函数不会被调用

尝试:

  1. 点击时调用函数而不是on-leave:它不传递与范围相关的参数
  2. 点击div时触发mouseleave()方法:不起作用:(
  3. 如果有人对此有任何解决方案,请告诉我。

2 个答案:

答案 0 :(得分:0)

我遇到了与angularjs和IE类似的问题。在我的情况下,按键不起作用,解决方案是使用按键事件(参见http://api.jquery.com/keyup/)。

在您的情况下,您可能遇到此问题https://github.com/angular/angular.js/issues/1277

我不熟悉上面的'on-leave',但您可以尝试使用jquery blur方法:https://api.jquery.com/blur/

答案 1 :(得分:0)

根据ng-mouseleave的文档,您可以尝试以下代码。

在我的上一个项目中,我使用IE8下面的代码来支持某些功能.. 你也可以尝试休假。

<!--[if lte IE 8]>
  <script>
    document.createElement('ng-include');
    document.createElement('ng-pluralize');
    document.createElement('ng-view');   
    document.createElement('alert');
    document.createElement('progress');
    document.createElement('ng-mouseleave');// try this

    // Optionally these for CSS
    document.createElement('ng:include');
    document.createElement('ng:pluralize');
    document.createElement('ng:view');
  </script>
<![endif]-->