2017-03-06 75 views
0

[编辑:解决]jQuery的不处理事件

对于那些可能会遇到同样的问题jQuery的,我已经使用AngularJS和UI视图与各国一直 。问题是,它 没有找到按钮,因为它是动态的AngularJS 创建,以便解决我不得不搬到代码控制器 内对这一观点

[/编辑]问题

晚上好,

我正在使用jQuery脚本来修改元素的html。

(function($j){ 
    /* 
    *@ Event listeners 
    */ 
    let save_button = $j(".save-button"); 

    save_button.hover(function(){ 
    save_button.html("Save"); 
    console.log(this, save_button); 
    }, function(){ 
    save_button.html('<i style="vertical-align: middle;" class="glyphicon glyphicon-floppy-save"></i>'); 
    }); 

    console.warn("The script is loaded", $j); 
})(jQuery); 

这是我写的脚本。在index.html页面中,我有一个$ .noConflict()来确保它不会打扰AngularJS,并且在这个其他脚本中,我将函数内部的jQuery对象传递给它,并在其中使用$ j参数。

由于console.warn()被触发,我可以从控制台看到脚本内部写的内容。

如果我console.log jQuery或$ j,它确实承认jQuery对象。

将jQuery库正确放入加载顺序中,此脚本是页面加载的最后一个东西。我不知道为什么悬停,html,甚至jQuery的隐藏功能都不起作用。有任何想法吗?

在此先感谢!

+0

的问题,当你CONSOLE.LOG会发生什么(save_button),在'hover'方法之外 – inspired

+0

你好,谢谢你的提问。刚刚解决了这个问题。似乎用angularjs动态生成页面导致了这个问题。它希望我把代码放在控制器内,否则它不知道该按钮是否存在。 – mnemosdev

+1

很适合找到问题!将它作为答案自己发布:D(而不是编辑);) –

回答

1

对于那些可能遇到相同的jQuery问题,我一直在 使用AngularJS和UI状态与视图。问题是,它 没有找到按钮,因为它是动态的AngularJS 创建,以便解决我不得不搬到代码控制器 内对这一观点