繁体   English   中英

如何在onClick函数中编写JavaScript代码以及我也想调用另一个函数

[英]How can I write JavaScript code in onClick function as well as I also want to call another function

我想在onClick函数中编写一个JavaScript代码行,并且还要在同一onClick中调用另一个函数。 我尝试如下:

<select onchange="updateSeatsDinnerCategory(3993); javascript: return function(){$(this).prop('disabled', true); return true;};" class="width-80" id="rowDinnerCategorySelect3993">
    <option value="-1">--select--</option>
    <option value="1">Family</option>
</select>

但这不起作用。

function(){ ... }是一个函数定义。 如果要立即执行内部代码,则还需要调用它:

(function(){ ... })()

您的代码将变为:

<select onchange="updateSeatsDinnerCategory(3993); return function(){$(this).prop('disabled', true); return true;}();" class="width-80" id="rowDinnerCategorySelect3993">
    <option value="-1">--select--</option>
    <option value="1">Family</option>
</select>

更好地查看您的代码(假设这是您要使用的实际代码),您不需要IIFE,也不需要返回值(始终为true):

<select onchange="updateSeatsDinnerCategory(3993); $(this).prop('disabled', true);" class="width-80" id="rowDinnerCategorySelect3993">
    <option value="-1">--select--</option>
    <option value="1">Family</option>
</select>

演示: http : //jsbin.com/agIVUfEt/1/edit

用这个:

<select onchange="updateSeatsDinnerCategory(3993);$(this).prop('disabled', true); return true;" class="width-80" id="rowDinnerCategorySelect3993">
<option value="-1">--select--</option>
<option value="1">Family</option>

您可以这样:

<select onchange="(function() {updateSeatsDinnerCategory(3993); $(this).prop('disabled', true); return false;})()" class="width-80"     id="rowDinnerCategorySelect3993">
    <option value="-1">--select--</option>
    <option value="1">Family</option>
</select>

演示版

将可选回调传递给updateSeatsDinnerCategory函数

function updateSeatsDinnerCategory(seats, callback) {
    // do whatever you wanted to do

    if (typeof callback !== 'undefined') {
         callback.call(this);
    }
}

这样,您可以调用传递的函数,并跳过不需要的地方。

// this will call the "standard version"
updateSeatsDinnerCategory(3993);

// this will execute the callback function as well
updateSeatsDinnerCategory(3993, function () {alert('lol'));

当然,回调不必是匿名函数,只有作用域内的任何函数都可以使用。

编辑

有更好的方法检查未定义,但这是最简单的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM