我在jQuery + ror应用程序中遇到了问题。我想用javascript做一些事情,比如删除和添加类,但问题是我不是在角控制器或排序中这样做,而是想在单独的.js文件中这样做。这里有一个问题,jQuery的工作方式不是它应该做的,例如:
$(document).ready(function() {
$("a").click(function() {
console.log("CLICKED");
});
console.log($("a"));
});
上面的代码不起作用,控制台显示我的文档中没有"a“标记。即使有“一个”标签。
但是下面的代码可以工作,它向控制台显示了整个body元素:
$(document).ready(function() {
$("body").click(function() {
console.log("CLICKED");
});
console.log($("body"));
});
我正在使用jquery创业板,下面您可以看到我的application.js文件。我使用资产管道来要求所有的角度文件(当然,测试除外)。
application.js:
//= require jquery
//= require jquery_ujs
//= require angular.min.js
//= require angular-resource.min.js
//= require angular-route.min.js
//= require ./angular/angular_app_declaration.js
//= require bootstrap-sprockets
//= require_tree .
我只使用Rails (即application.html.erb )生成标准视图,我使用RoR作为API,其余视图由角路由处理,而"a“标记是通过生成templateUrl按角添加的。
我如何使jQuery工作?
发布于 2014-12-03 23:22:43
为了让您的jQuery到达您的标记,您应该使用角指令。
在您的HTML
中,由角模板加载。你可以做这样的事。
<a href="http://example.com" custom-directive >Link</a>
然后在角度app.js
中,执行以下指令:
app.module('App', [])
...
.directive('customDirective', [function(){
return {
link : function(scope, elem, attr){
elem.on('click', function(){ console.log(' CLICKED ! '); });
},
restrict : 'A'
}
}])
https://stackoverflow.com/questions/27283295
复制相似问题