HTML使用onclick输入来运行javascript代码

时间:2015-10-01 02:36:07

标签: javascript html

我目前正在尝试使用许多可点击按钮实现菜单 - 开胃菜,汤等。通过使用参数,我可以将食物类型发送到我的JavaScript。
这些是按钮 http://puu.sh/kugEs/5048221343.jpg

这是我点击开胃菜时的代码。

function scroll(type) {
    var test = "('#" + type + "')";
    alert(test); //('#appetizers')

    $("html, body").animate({ scrollTop: $test.offset().top-150 }, 600); //this doesnt work
    $("html, body").animate({ scrollTop: $('#appetizers').offset().top-150 }, 600); //this works
}

当然我想做到这一点,以便我不必手动使用工作线。我想使用一个不起作用的那个,它可以应用于运行相同功能的所有按钮,只有不同的参数。

如何使用var测试来运行不起作用的行?

3 个答案:

答案 0 :(得分:4)

您应该使用$并注意引号::

var $test = $('#' + type);  // Now it's a jQuery Object

在你的例子中:

function scroll(type) {
    var $test = $('#' + type);
    $("html, body").animate({ scrollTop: $test.offset().top-150 }, 600);
}

答案 1 :(得分:2)

您应该将$ test定义为对象,而不是字符串。

function scroll(type) {
    var test = $('#' + type);
    alert($test.attr("id")); // appetizers
    $("html, body").animate({ scrollTop: $test.offset().top-150 }, 600);
}

答案 2 :(得分:-1)

尝试使用此代码。它应该工作。

function scroll(type) {
    var test = "('#" + type + "')";      
    alert(test); //('#appetizers')
    $("html, body").animate({ scrollTop: $('#'+type).offset().top-150 }, 600);
}