我创建了一个js文件,我在其中创建动态表并动态更改日历的click事件,但是在上一个日历图像中点击动态生成的表,日历弹出窗口的日历图像.请帮我
码
/***------------------------------------------------------------
*
*Developer: Vipin Sharma
*
*Creation Date: 20/12/2010 (dd/mm/yyyy)
*
*ModifiedDate ModifiedBy Comments (As and when)
*
*-------------------------------------------------------------*/
var jq = jQuery.noConflict();
var ia = 1;
jq(document).ready(function(){
jq("#subtaskid1").click(function() {
if(ia<=10){
var create_table = jq("#orgtable").clone();
create_table.find("input").each(function() {
jq(this).attr({
'id': function(_, id) { return ia + id },
'name': function(_, name) { return ia + name },
'value': ''
});
}).end();
create_table.find("select").each(function(){
jq(this).attr({
'name': function(_,name){ return ia + name }
});
}).end();
create_table.find("textarea").each(function(){
jq(this).attr({
'name': function(_,name){ return ia + name }
});
}).end();
create_table.find("#f_trigger_c").each(function(){
var oclk = " displayCalendar(document.prjectFrm['"+ ia +"dtSubDate'],'yyyy-mm-dd', this)"; //ERROR IS HERE
var newclick = new Function(oclk);
jq(this).click(newclick);
}).end();
create_table.appendTo("#subtbl");
jq('#maxval').val(ia);
ia++;
}else{
var ai = ia-1;
alert('Only ' + ai + ' SubTask can be insert');
}
});
});
Run Code Online (Sandbox Code Playgroud)
小智 173
您可以onclick使用jQuery 轻松更改元素的事件,而无需运行新函数:
$("#id").attr("onclick","new_function_name()");
Run Code Online (Sandbox Code Playgroud)
通过编写此行,您实际上更改了该onclick属性#id.
您还可以使用:
document.getElementById("id").attribute("onclick","new_function_name()");
And*_*tov 26
删除旧的事件处理程序
jQuery('#id').unbind('click');
Run Code Online (Sandbox Code Playgroud)
并附上新的
jQuery('#id').click(function(){
// your code here
});
Run Code Online (Sandbox Code Playgroud)
小智 14
更新这篇文章(2015):unbind/bind不应再用于jQuery 1.7+.而是使用函数off().示例:
$('#id').off('click');
$('#id').click(function(){
myNewFunction();
//Other code etc.
});
Run Code Online (Sandbox Code Playgroud)
确保在.click中调用非参数函数,否则将被忽略.