mor*_*ner 2 javascript jquery jasmine jasmine-jquery
这是我的测试代码:
describe("Login", function(){
beforeEach(function(){
loadFixtures('login-fixture.html');
})
it("should enable the button when checking 'remember password'", function(){
$('#remember').trigger('click');
expect($('#keepIn')).not.toBeDisabled();
});
});
Run Code Online (Sandbox Code Playgroud)
这是我的生产代码:
$(document).ready(function(){
$('#remember').click(function(e) {
if($('#remember').is(':checked'))
{
$('#keepIn').removeAttr('disabled');
}
});
});
Run Code Online (Sandbox Code Playgroud)
这不起作用,生产代码永远不会被调用.我已经在触发事件之前和之后发出警报,并且在触发之后选中了复选框,但是没有调用.click函数.
有关为什么会发生这种情况的任何想法?
在没有看到其余代码的情况下,我假设"login-fixture.html"包含"#remember"复选框.如果是这样,它在DOM加载后加载.这意味着您要分配的"单击"事件仅适用于先前加载的元素.jQuery on()事件将为新加载的元素分配您想要的任何事件.您可能想尝试向该id添加on()事件.就像是:
$(function(){
$('#remember').on('click', function(){
if($('#remember').is(':checked')){
$('#keepIn').checkboxradio('enable');
}
});
});
Run Code Online (Sandbox Code Playgroud)
希望有所帮助.
| 归档时间: |
|
| 查看次数: |
5360 次 |
| 最近记录: |