如何在jQuery中调用javascript函数

时间:2017-01-23 18:39:04

标签: javascript jquery html

我们的HTML中有一个带有javascript函数的标记,

<select name="My_Saved_Billing" onchange="Choose_My_Saved_Billing(this.selectedIndex)" >
    <option>Select</option>
    <option value="1714">Address line 1, QC</option>
</select>

<script type="text/javascript">
function Choose_My_Saved_Billing(arg_index) {
    switch(arg_index) { 
        // some commands here
    }
}
</script>

我还在其中添加了一个jQuery,以便在Windows加载时,它会自动选择第二个选项。

<script type="text/javascript">
    $(window).load(function(){
        $("select").val($("select option:eq(1)").val());    
    });
</script>

但是可以使用jQuery调用javascript函数吗?如果是这样,我应该怎么称呼它?

我应该使用Choose_My_Saved_Billing(this.selectedIndex)还是Choose_My_Saved_Billing(arg_index),否则您可能会知道某些事情。我试过这两个,但都没有。请告诉我。这里只是一个初学者。

7 个答案:

答案 0 :(得分:0)

是的,可以在jQuery ready块中调用函数。既然你已经在全局范围内定义了这个函数(应该把它移到jQuery ready块中,或者如果你想把它转移到模块中),可以从任何地方调用它。所以在准备好的区块内:

$(function () {
  // do stuff
  Choose_My_Saved_Billing(args);
});

答案 1 :(得分:0)

jQuery是JavaScript。它只是一个JavaScript库。主要的jQuery全局$是一个JavaScript函数,它将一个有效的选择器作为参数,并提供有关该函数返回值的几种方法。

因此,将回调函数中的JavaScript函数调用到.load不是问题。

目前尚不清楚Choose_My_Saved_Billing函数实际上做了什么。

答案 2 :(得分:0)

想想这里发生了什么。在onchange事件中,您将调用函数,并将所选选项的索引作为参数传递。由于JQuery只是一个可以用JavaScript做的事情的快捷方式库,我们应该能够轻松地做同样的事情。

因此,让我们得到我们想要所选索引的元素:

// maybe think about adding an ID here for better selection
var select = $('select[name^="My_Saved_"]'); 

然后让我们使用change事件获取索引,然后调用函数:

var index = 0;
select.change(function(){
    index = select.selectedIndex || 2;  // set the index to default to 2
    Choose_My_Saved_billing(index);
});

答案 3 :(得分:0)

不使用onchange="...",只需使用jQuery附加更改侦听器:

$(window).load(function() {
    $('.colors_backgroundneutral select').on('change', function () {
        Choose_My_Saved_Billing(this.value);
    });
});

答案 4 :(得分:0)

从JQuery文件中调用JavaScript函数的方式与从JavaScript文件中调用JavaScript函数的方式相同:)之所以这样,是因为JQuery是基于JavaScript的库。假设您要在窗口加载时从JavaScript文件调用函数foo

jQuery:

$(window).on('load', function() {
    foo();
});

和JavaScript:

function foo() {
    alert('This works!');
}

我希望这会有所帮助!

答案 5 :(得分:0)

  $(document).ready(function() {
    $("#Submit1").click(function() {
      $("#id1").hide();
      Raise1();


    });


    $("#Raise").click(function() {
      $("#id1").show();



    });
  });





function Raise1() {
  var value1;
  alert("hi");
  value1 = document.getElementById("amount").value;
  alert(value1);
  alert("done");
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.0.1/angular.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.1/jquery.min.js"></script>

答案 6 :(得分:-1)

由于jQuery是一个更简单和高级的JavaScript解决方案,我的猜测是你可以这样称呼JS函数:

$(window).load(function(){
    my_js_function(arg1, arg2);
});

现在,你想要的是用参数Choose_My_Saved_Billing()

来调用名为arg_index的JS函数

所以,你的jQuery看起来像这样:

$(window).load(function(){
    Choose_My_Saved_Billing(arg_index);
});

仅当函数已通过原始代码通过<script type="text/javascript" src="path/to/my_file.js">头标记声明时才有效。

它应该像魅力一样工作,如果没有,请随时分享浏览器返回的错误。