当我第一次点击它时,jQuery 错误框不会出现。当我第二次再次点击时。

$(document).ready(function() {

jQuery.validator.addMethod("file", function( value, element ) {
                var ext = value.substring(value.lastIndexOf('.') + 1);
                var result = this.optional(element) || ext == "csv" || ext == "CSV";
                return result;
        }, '<div class="errorbox rateError"><div class="error-message">* Please upload only csv file</div><div class="error-arrow"></div></div>');
var $Zone = $('#ZoneZone').attr('name');

var $params = {debug:false,rules:{},messages:{}};

$params['rules'][$Zone] = {"required": true};
$params['messages'][$Zone] = {"required":'<div class="errorbox rateError"><div class="error-message">* Please enter Zone</div><div class="error-arrow"></div></div>'
};

 $("#ZoneAdminAddForm").validate($params);

jQuery(document).on('click','.errorbox',function(){
        alert("click");
        $(this).fadeOut('slow',function(){
            $(this).remove();
        });
    });

});

当我第一次点击错误框时什么也没有发生,但是当我第二次再次点击时,它会发出警报,并且该错误消息正在发生。

我也尝试不提供冲突代码,但它不起作用。

相同的代码在其他页面中工作。

最佳答案

.on() 适用于 jQuery 1.7 及更高版本。如果您有旧版本,请使用以下命令:

$('.errorbox').live('click',function(){
        $(this).fadeOut('slow',function(){
                $(this).remove();
        });
    });


   $('.errorbox').live('focus', function()
    {
        $(this).fadeOut('slow',function(){
        $(this).remove();
        });
    });

关于当我第一次点击它时,jQuery 错误框不会出现。当我第二次再次点击它时,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17187714/

10-10 13:10