【问题标题】:Run a function on document.ready and onClick在 document.ready 和 onClick 上运行一个函数
【发布时间】:2013-05-26 19:00:17
【问题描述】:

有没有办法让这个 ajax 响应在 document.ready 和 onClik 上运行,而无需在另一个函数中复制/粘贴代码?

$(document).ready(function() {
var ads = $('#ads').val();
function ajax(){
    $.ajax({
        url: "./services/finn_bilder.php",
        type:"POST",
        data:{ads: ads},
        success:function(data){
            $('#AdsDiv').html(data);
        }

我希望它运行 onClick $('#id').click(function());以及它现在的工作方式,无需复制/粘贴?

【问题讨论】:

  • 使用另一个 named 函数并在 .click.ready 中调用它有什么问题?这是唯一理智的方法
  • 总是有$(document).on('ready click', ajax);.on('ready') 有问题
  • 确保看到答案之间的差异:var ads = $('#ads').val(); 在 LightStyle 给出的示例中只运行一次,我确保每次调用 ajax 函数时它都会准确。

标签: javascript jquery ajax function document-ready


【解决方案1】:

只要确保您可以重复使用您创建的 javascript 函数即可:

$(document).ready(function() {
    // Will accure at document load
    ajax();
    // Will accure at every click
    $(document).click(function() { ajax(); });
}

function ajax(){
    var ads = $('#ads').val();
    $.ajax({
        url: "./services/finn_bilder.php",
        type:"POST",
        data:{ads: ads},
        success:function(data){
            $('#AdsDiv').html(data);
        });
}

【讨论】:

  • $(document).click(function() { ajax(); }); 可能会缩短为$(document).click(ajax);
  • 确实如此。只要“ajax”函数不接受任何参数。在任何条件下运行并且它的返回值被忽略(很像上面的例子)。
【解决方案2】:

只需在 document ready 中调用它并将其绑定到 document.click。

$(document).ready(function() {
    var ads = $('#ads').val();
    function ajax(){
        $.ajax({
            url: "./services/finn_bilder.php",
            type:"POST",
            data:{ads: ads},
            success:function(data){
                $('#AdsDiv').html(data);
            }
        });
    }
    ajax();
    $(document).click(function() {
        ajax();
    });
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-07
    • 1970-01-01
    • 1970-01-01
    • 2020-10-06
    • 2018-09-14
    • 2015-04-07
    • 2013-07-31
    • 2020-04-22
    相关资源
    最近更新 更多