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

时间:2014-10-17 11:43:31

标签: javascript

我现在面临的一个非常有趣的问题是关于我的一个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()但是没有用时,我也改变了代码的顺序。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

某些功能已经编程为' alert(' hi');',这是一个名为alert的功能:

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

该功能也不起作用。