【发布时间】:2016-03-23 23:32:29
【问题描述】:
我有输入搜索和表格,如果我更改输入,它会自动生成。
<div class="search">
<form action="" method="post" class="searchform" >
<input type="search" name="" placeholder="Search" class="inputsearchform" ng-model="search"/>
<input type="submit" name="" value="" class="submitsearchform" />
</form>
</div>
<div class="songlist">
<table id="songlistTableR" ng-app='test_table' ng-controller='main_control'>
<tr><th>Name</th><th>Link</th></tr>
<tr ng-repeat="data in loaded | filter:search">
<td><i class="fa fa-plus"></i>{{data.song_name}}</td>
<td><a href="{{data.link}}" target='_blank'>Youtube</a></td>
</tr>
</table>
</div>
生成表格数据的JS脚本是:
var app = angular.module('test_table', []);
var n = [];
app.controller('main_control',function($scope,$http, $rootScope){
load();
function load(){
$http.get("http://localhost:7001/load").success(function(data){
$rootScope.loaded=data;
n = data;
});
}
});
我也有代码,当 input.value != 0 时显示表格
$('.inputsearchform').bind('input', function() {
if($(this).val() == 0){
songlistTableR.style.visibility = 'hidden';
}
else{
songlistTableR.style.visibility = 'visible';
}
});
一切正常,但单击元素.fa.fa-plus 时我无法访问它。仅有的两种方法是将$(".fa.fa-plus").click(function(){}); 放入bind 事件或在window.onload 之外创建函数,如果我将HTML 文件中的.fa.fa-plus 元素放在onclick 中,这将起作用。
第一种方法不好,因为如果我多次更改输入,点击功能每次都会起作用,即使我没有点击这个元素。
第二种方法也不合适,因为我需要知道点击元素的index。
谁能告诉我一个解决方案?
UPD抱歉打扰了,我解决了这个问题。我将Jquery 的版本更改为2.2.2,现在它可以工作了。感谢您的帮助!
【问题讨论】:
-
如果你使用 angular,你真的应该用 angular 来处理点击事件。在许多情况下,使用 jQuery 处理 Angular 也处理的事件会导致问题。是的,有例外,绝对可以做到,但是在这种情况下,您绝对应该使用@Vanojx1的解决方案。
标签: javascript jquery html angularjs