如何在jQuery中调用JavaScript函数?

如何在jQuery中调用JavaScript函数?,javascript,jquery,Javascript,Jquery,我试图从jQuery代码中调用JavaScript函数,但不起作用 JavaScript函数: <script type="text/javascript"> function showonlyone(thechosenone) { var newboxes = document.getElementsByTagName("a"); for (var x=0; x<newboxes.length; x++) { name = newboxes[x

我试图从jQuery代码中调用JavaScript函数,但不起作用

JavaScript函数:

<script type="text/javascript">
function showonlyone(thechosenone) {
    var newboxes = document.getElementsByTagName("a");
    for (var x=0; x<newboxes.length; x++) {
        name = newboxes[x].getAttribute("class");
        if (name == 'newboxes') {
            if (newboxes[x].id == thechosenone) {
                newboxes[x].style.display = 'block';
            }
            else {
                newboxes[x].style.display = 'none';
            }
        }
    }
}
</script>

功能仅显示一个(氯乙烯酮){
var newbox=document.getElementsByTagName(“a”);
对于(var x=0;x
可能只是js错误

$("#img2").on("click", function(event){
 event.preventDefault();
showonlyone("im2");

    });
但无论如何,如果已经开始,最好用jquery编写所有代码

可能只是js错误

$("#img2").on("click", function(event){
 event.preventDefault();
showonlyone("im2");

    });
但是无论如何,如果您已经开始,最好在jquery中编写所有代码。

这并不是说您“需要将
事件
传递到
函数
”,因为jquery已经这样做了

但是,您应该命名参数,以便将其引用为
事件

$("#img2").on("click", function(event){
    //                          ^^^^^
    event.preventDefault():
    // etc.
});
在JavaScript中,
event
不像
this
那样是一个关键字。从历史上看,它是这样的,但不是标准化的。

并不是说您“需要将
事件
传递给
函数
”,因为jQuery已经这样做了

但是,您应该命名参数,以便将其引用为
事件

$("#img2").on("click", function(event){
    //                          ^^^^^
    event.preventDefault():
    // etc.
});


在JavaScript中,
event
不像
this
那样是一个关键字。从历史上看,它是这样的,但不是标准化的。

你会遇到什么错误?你确定你不是指
showonlyone(#im2”)
?你需要将
event
传递到函数中才能使用
event.preventDefault()
@Bram:他似乎没有在这一部分使用jQuery,所以哈希是可能的,但不太可能。类似的强制性评论:jQuery是JavaScript。所以你的问题归结为:“如何调用函数?”或者“为什么不调用此函数?”你得到了什么错误?你确定你不是指
showonlyone(#im2”);
?您需要将
event
传递到函数中才能使用
event.preventDefault()
@Bram:他似乎没有对该部分使用jQuery,因此哈希是可能的,但不太可能。类似的强制性注释:jQuery是JavaScript。因此您的问题归结为:“如何调用函数?”或“为什么不调用此函数?”您可以在自己的帖子上发表评论。您可以解释我,为什么我被否决,而2分钟后得到的相同答案获得3票赞成票?哪个答案?请将我链接到它。您需要将事件传递到函数中才能使用event.preventDefault()@Bram:他似乎没有对那部分使用jQuery,所以散列是一种可能性,但不太可能。-David ThomasAh,那。是的,评论对于部分答案来说很好。但是,作为答案发布的答案应该是完整的答案。理想情况下,他们应该进行教育,而不仅仅是修复一些代码。你可以在自己解释的扫描后发表评论对我来说,为什么我会被否决,而2分钟后得到的相同答案会获得3票赞成票?哪个答案?请将我链接到它。您需要将事件传递到函数中才能使用event.preventDefault()@Bram:他似乎没有对这一部分使用jQuery,所以散列是一种可能性,但不太可能。-David ThomasAh,那是。是的,评论对于部分答案来说是很好的。但是,作为答案发布的答案应该是完整的答案。理想情况下,他们应该进行教育,而不仅仅是修复一些代码。澄清一下:你甚至可以引用一个论点如果你不给它命名:
参数[0]。preventDefault()
@JanDvorak虽然使用匿名参数是一种糟糕的做法,但知道这一点很好!@JanDvorak当然。但是,我看到使用
参数的建议遭到强烈反对,所以我想我应该跳过它。@Frederik。我不是暗示过吗?:-)然而,Mozilla确实做到了这一点(有点)对于可选参数:
函数(a/*,b*/){if(arguments.length>1){b=arguments[1]};..}
@JonathanLonowski有一些很好的
参数[n]
的用法。当然,这不是:-)来澄清:即使不命名参数,也可以引用它:
参数[0]。preventDefault()
@JanDvorak虽然使用匿名参数是一种糟糕的做法,但知道这一点很好!JanDvorak当然。但是,我看到使用
参数的建议遭到反对,所以我想我应该跳过它。@Frederik.L我有没有暗示其他?:-)然而,对于可选参数,Mozilla确实(有点)这样做:
函数(a/*,b*/){if(arguments.length>1){b=arguments[1]};..}
@JonathanLonowski
arguments[n]
有一些很好的用法。当然,这不是:-)