为什么一个具有特定名称的JavaScript函数不起作用而其他函数却起作用?

为什么一个具有特定名称的JavaScript函数不起作用而其他函数却起作用?,javascript,Javascript,最近我面临的一个非常有趣的问题是关于我的一个JavaScript函数。我的带有特定名称的JavaScript函数不起作用,但如果我将其名称更改为其他名称,它就起作用了。看一看- // function to retain the jquery ui css for toolbar function retain_css() { alert('hi'); $( "#new_sort_options" ).buttonset(); } // new sort $(document)

最近我面临的一个非常有趣的问题是关于我的一个JavaScript函数。我的带有特定名称的JavaScript函数不起作用,但如果我将其名称更改为其他名称,它就起作用了。看一看-

// function to retain the jquery ui css for toolbar
function retain_css() {
    alert('hi');
    $( "#new_sort_options" ).buttonset();
}

// new sort
$(document).on("click", ".new_sort_button", function() { 
    var order       = $(this).val();
    var make_id     = $('#new_make_id').val();
    $.ajax({
        beforeSend  : start_loader(),
        type        : 'POST',
        url         : '/ajax/new-sort.php',
        data        : 'order='+order+'&make_id='+make_id,
        dataType    : 'json',
        success     : function(data) {
                        $("#new_results_toolbar").html(data.toolbar);
                        $("#new_results").html(data.models);
                        retain_css();
                        end_loader();
        }
    }); 
});

但是retain_css()根本不起作用。甚至alert()也没有触发。但是如果我将其名称更改为my_fun()之类的名称,那么代码就可以工作了。我不明白为什么会这样?有什么想法吗?不要担心end_loader()函数,因为它与我的问题无关。在使用retain_css()时,我还更改了代码的顺序,但不起作用。

尽量不要创建全局函数,因为它可能会与其他框架或库发生冲突

//define private namespace
window.user3779493Functions = {};
//define method
user3779493Functions.retain_css = function() { ... }
//call method
user3779493Functions.retain_css();

一些功能已经被编程为“警报('hi');”,这是一个名为alert的函数:

function alert() {
    /* do something */
} 

这个功能也不起作用。

哇,怎么可能呢?您是否有可能在一个实时示例(这里是一个代码片段或JSFIDLE等)中复制它?“不要担心end_loader()函数,因为它与我的问题无关”,然后将其从您显示的代码中删除。console中是否有错误?你能抽象出AJAX吗?制作一个脚本并向我们显示调试结果。唯一可行的方法是,如果retain\u css再次声明在较低的位置或其他位置,并覆盖函数。retain\u css对我来说非常适合,因此您的错误可能高于您向我们显示的代码。请将代码的一部分粘贴到retain_css()上方,或者只是一把小提琴。