如何每秒调用一次函数,或者以(this)作为参数加载元素时如何调用函数?

时间:2018-10-05 17:59:34

标签: javascript jquery

我有select元素,并且我正在调用函数onclick,它工作正常,但是我想在元素加载时调用此函数,但是由于可以动态创建select元素,因此我想调用函数getPrice应该在元素出现时每秒使用this.value作为参数或每秒调用一次,该怎么办?

<select class="form-control item" name="items[]" onclick="get_price(this.value)">
// Options
</select>

function get_price(item) 
{   
    $.ajax({
      type: "POST",
      url: "getData.php",
      data: {item: item},
      success: function(data) {
        // do stuff
      },
    }); 
}

1 个答案:

答案 0 :(得分:2)

  

因为选择元素可以动态创建

您可以通过JS代码附加事件:

    private KeysetHandle getOrGenerateNewKeysetHandle() throws IOException, GeneralSecurityException {
        AndroidKeysetManager.Builder keysetManagerBuilder = new AndroidKeysetManager.Builder()
                .withSharedPref(getApplicationContext(), TINK_KEYSET_NAME, TINK_PREF_FILE_NAME)
                .withKeyTemplate(AeadKeyTemplates.AES256_GCM);

        if (Build.VERSION.SDK_INT >= 23) {
            keysetManagerBuilder.withMasterKeyUri(ANDROID_KEYSTORE_TINK_MASTER_KEY_URI);
        } else {
            keysetManagerBuilder.doNotUseKeystore();
        }

        return keysetManagerBuilder.build().getKeysetHandle();
    }
//JSUT FOR DEMO START
setTimeout(function() {
  $('.item').append('<option>Dynamic option</option>');
}, 500);
//JSUT FOR DEMO END


function get_price() {
  console.log('Perform ajax request with item : ' + $(this).val());
}

$('.item').change(get_price);