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