Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带变量的Jquery问题_Javascript_Jquery - Fatal编程技术网

Javascript 带变量的Jquery问题

Javascript 带变量的Jquery问题,javascript,jquery,Javascript,Jquery,我举了以下例子: 该变量应在单击时触发,使链接从打开变为关闭,并将颜色从红色变为绿色。但是,相反,它开始时已经是绿色的,因此使该功能无用 为什么它不起作用 HTML 通过这样做,您将执行这些操作并将返回值存储在$myVar中的jQuery元素中。您只需将代码放入click trigger函数中即可 $('#link').click(function () { $('.on').addClass('off').removeClass('on'); }); 另外,您忘记了ID之前的元素。如

我举了以下例子:

该变量应在单击时触发,使链接从打开变为关闭,并将颜色从红色变为绿色。但是,相反,它开始时已经是绿色的,因此使该功能无用

为什么它不起作用

HTML


通过这样做,您将执行这些操作并将返回值存储在$myVar中的jQuery元素中。您只需将代码放入click trigger函数中即可

$('#link').click(function () {
    $('.on').addClass('off').removeClass('on');
});

另外,您忘记了ID之前的元素。如果没有,代码将选择链接标记,而不是带有ID链接的元素。您不需要明确地使用$document.find'.on',因为所有DOM元素都在其中。

通过这样做,您将执行这些操作并存储返回值,返回值将是$myVar中的jQuery元素。您只需将代码放入click trigger函数中即可

$('#link').click(function () {
    $('.on').addClass('off').removeClass('on');
});

另外,您忘记了ID之前的元素。如果没有,代码将选择链接标记,而不是带有ID链接的元素。您不需要明确地使用$document.find'.on',因为所有DOM元素都在其中。

它不是这样工作的,变量将只包含您调用的任何方法的结果,对于jQuery,这意味着将返回元素,因此变量$myVar在事件处理程序中仅等于$document,它不会再次调用链式方法

你必须做到:

$(document).ready(function () {
    $('#link').on('click', function () {
        $('.on').toggleClass('on off');
    });
});

它不是这样工作的,变量将只包含您调用的任何方法的结果,对于jQuery,这意味着将返回元素,因此变量$myVar在事件处理程序中仅等于$document,它不会再次调用链接方法

你必须做到:

$(document).ready(function () {
    $('#link').on('click', function () {
        $('.on').toggleClass('on off');
    });
});

您似乎有这样一种印象,即变量将存储一系列操作,以便在“调用”变量时稍后执行,但这并不清楚:在变量赋值的ready处理程序中,第一行找到.on元素并执行您指定的操作,将.on元素作为jQuery方法存储在变量中,几乎所有方法都会返回this对象

相反:

$(document).ready(function () {
    // use the `#link` notation, since 'link' is the id of the element:
    $('#link').click(function () {
        // assign a function to the click-event handler:
        $('.on').addClass('off').removeClass('on');
    });
});
或者,更简单地说,如果您想在“状态”之间切换,请使用toggleClass和$this,而不是在用户每次单击给定元素时从整个文档中进行选择:

$(document).ready(function () {
    $('#link').click(function () {
        $(this).toggleClass('on off');
    });
});
另外,不要在href中使用javascript:void0,只需使用jQuery来阻止默认操作,包括:

$(document).ready(function () {
    $('#link').click(function (e) {
        e.preventDefault();
        $(this).toggleClass('on off');
    });
});

参考资料:

. . .
您似乎有这样一种印象,即变量将存储一系列操作,以便在“调用”变量时稍后执行,但这并不清楚:在变量赋值的ready处理程序中,第一行找到.on元素并执行您指定的操作,将.on元素作为jQuery方法存储在变量中,几乎所有方法都会返回this对象

相反:

$(document).ready(function () {
    // use the `#link` notation, since 'link' is the id of the element:
    $('#link').click(function () {
        // assign a function to the click-event handler:
        $('.on').addClass('off').removeClass('on');
    });
});
或者,更简单地说,如果您想在“状态”之间切换,请使用toggleClass和$this,而不是在用户每次单击给定元素时从整个文档中进行选择:

$(document).ready(function () {
    $('#link').click(function () {
        $(this).toggleClass('on off');
    });
});
另外,不要在href中使用javascript:void0,只需使用jQuery来阻止默认操作,包括:

$(document).ready(function () {
    $('#link').click(function (e) {
        e.preventDefault();
        $(this).toggleClass('on off');
    });
});

参考资料:

. . . 我猜你是说$link。。。而不是$link

如果我理解正确,完整的脚本应该是:

$(document).ready(function(){
    $("#link").click(function(){
         $(".on").addClass("off").removeClass("off");
    });

});
我猜你是说$link。。。而不是$link

如果我理解正确,完整的脚本应该是:

$(document).ready(function(){
    $("#link").click(function(){
         $(".on").addClass("off").removeClass("off");
    });

});
正如Guillerme Sehn所指出的,不需要$myVar变量。只需将代码放入单击事件中。此外,链接选择器需要是链接,而不是链接


正如Guillerme Sehn所指出的,不需要$myVar变量。只需将代码放入单击事件中。此外,链接选择器必须是link,而不是link。

您没有调用该函数,并且您的选择器是错误的

$(document).ready(function () {
  $('#link').click(function () {
      $(document).find('.on').addClass('off').removeClass('on');
  });
});

您没有调用该函数,并且选择器错误

$(document).ready(function () {
  $('#link').click(function () {
      $(document).find('.on').addClass('off').removeClass('on');
  });
});