2012-02-02 64 views
0

我有这样的形式:jQuery的。对触发没有触发动作

$form = array(
     '<form name="backup-form" class="backup-form" method="post" action="#">', 
      '<fieldset class="backup-fields">', 
       '<fieldset class="display-wrapper">', 
        '<label for="display" class="display-label">Backups</label>', 
        '<input type="text" name="display" class="display" value="' . $this->backups(false,true) . '" autocomplete="off" readonly="readonly" />', 
       '</fieldset>', 
       '<fieldset class="action-wrapper">', 
        '<button type="submit" name="clean" class="clean">Clean All</button>', 
        '<button type="submit" name="create" class="create">Create</button>', 
       '</fieldset>', 
      '</fieldset>', 
     '</form>', 
     '<div class="message-handling" class="message-handling"></div>' 
    ); 
$form = implode("", $form); 
echo $form; 

而且我想要的结合甚至每个提交按钮这样的:

$('.backup-form .clean').on({ 
    click: function() {console.log('Clean Button Pressed');} 
}); 

or 

$('.main-actions .backup-form').delegate('.clean', 'submit', function() { 
    console.log('Clean Button Pressed');  
}); 

但是没有它作品。发生了什么 ?或者我应该怎么做才能使它工作?

+0

['$(文件)。就绪(函数(){...}) '](http://api.jquery.com/ready/)? – 2012-02-02 11:17:43

+0

我无法使用它,因为此脚本位于通过jQuery Tools的选项卡加载了ajax的页面上,因此不允许使用$(document).ready(function(){...})。 – Roland 2012-02-02 12:44:10

回答

1

试试,如果你是动态添加的形式

$(function(){ 
    $(document).delegate('.clean', 'submit', function() { 
     console.log('Clean Button Pressed');  
    }); 
} 

,或者如果没有这应该工作

$(function(){ 
$('.main-actions .backup-form').delegate('.clean', 'submit', function() { 
    console.log('Clean Button Pressed');  
}); 
}