我创造了一个巨大的形式。我必须用Jquery做很多动作。我已经完成了我可以采取行动的部分。现在是时候进行控制了。
通过控件我的意思是,假设我将编辑数据,我必须收集选择/检查哪个表单元素等,这取决于我必须显示额外表单元素的变量。
我已经为行动编写了超过300行的Jquery。我现在必须做控件但我不想复制和粘贴并编辑超过300行的Jquery代码,所以我试图采用懒惰方式,但它没有用。
// Category
if ($('input[name=category]:checked').val() == 1) {
$('input[name=category]:eq(1)').click();
}
// Product
else if ($('input[name=category]:checked').val() == 0) {
$('input[name=category]:eq(0)').click();
}
// Undefined Value
else {
$('.frm_options').slideUp();
}
我不知道为什么上面的代码不起作用。我可以看到它正在更改单选按钮元素的已检查属性,但不是没有单击所以它将显示表单的其余部分。
/********************************************************************************************
ACTIONS
********************************************************************************************/
$('input[name=category]').bind('click', function () {
// Show rest of the form
$('.frm_options').slideDown();
// Product Specific
if ($(this).val() == 0) {
$('.frm_category_0').fadeIn(1000);
$('.frm_category_1').fadeOut(1000);
}
// Category Specific
else if ($(this).val () == 1) {
$('.frm_category_1').fadeIn(1000);
$('.frm_category_0').fadeOut(1000);
}
// Undefined Value, Hide everything
else{
$('.frm_options').slideUp();
$('.frm_category_1').slideUp();
$('.frm_category_0').slideUp();
}
});
我想我现在要做的更清楚了。我只是试图操纵点击功能,所以我不必再次编写所有代码。
任何人都知道我遇到的这个问题的解决方案?如果有人能帮助我解决我的问题,我将非常高兴。
提前谢谢。
答案 0 :(得分:1)
/********************************************************************************************
ACTIONS
********************************************************************************************/
$('input[name=category]').bind('click', function () {
// Show rest of the form
$('.frm_options').slideDown();
// Product Specific
if ($(this).val() == 0) {
$('.frm_category_0').fadeIn(1000);
$('.frm_category_1').fadeOut(1000);
}
// Category Specific
else if ($(this).val () == 1) {
$('.frm_category_1').fadeIn(1000);
$('.frm_category_0').fadeOut(1000);
}
// Undefined Value, Hide everything
else{
$('.frm_options').slideUp();
$('.frm_category_1').slideUp();
$('.frm_category_0').slideUp();
}
});
// Category
if ($('input.category:checked').val() == 1) {
$('input.category:eq(1)').click();
}
// Product
else if ($('input.category:checked').val() == 0) {
$('input.category:eq(0)').click();
}
// Undefined Value
else {
$('.frm_options').slideUp();
}// Category
if ($('input[name=category]:checked').val() == 1) {
$('input[name=category]:eq(1)').click();
}
// Product
else if ($('input[name=category]:checked').val() == 0) {
$('input[name=category]:eq(0)').click();
}
// Undefined Value
else {
$('.frm_options').slideUp();
}
您希望将来电移至.click
以下的.bind
。否则,在附加事件处理程序之前单击元素。
答案 1 :(得分:0)
触发点击事件,您需要trigger
编辑:
也试试这个(jquery namespaced events)
在行动中$('input[name=category]').bind('click.category', function () {
并在控件中执行$('input[name=category]:eq(1)').trigger('click.category');
HTH
答案 2 :(得分:0)
您的代码是按顺序排列的,然后编写代码来生成它。