jQuery Ready() 问题 - $(this) 不可用且代码仅适用于一个元素

标签 jquery document-ready

当 DOM 准备好时,我无法运行一些 jQuery。

我有两个表单,每个表单都有 <select>当我的代码运行时应该加载到其他表单元素中。

当用户第一次加载页面时,我希望在ready()上进行这些选择获取某些属性(表单操作、load() 目标等),然后将其加载。使用 change() 时效果非常好我可以得到一个 <select>工作时但不能同时工作。

HTML

<form action="php/bagCreate/newBag_bag.php" method="post" id="form1">
  <select id="target" data-target="upForm" class="get" name="bagLevel">
    <option>1</option>   
    <option>2</option>  
    <option>3</option>   
  </select>        
</form>

<form action="php/bagCreate/storeItems_bag.php" method="post" id="form2">      
  <select id="target2" data-target="upFormType" class="get" name="itemName">
    <option>A</option>   
    <option>B</option>  
    <option>C</option>   
  </select>        
</form>

JS

这适用于单个表单,但第二个表单无法加载

$(document).ready(function(){
$('select.get').ready(function() {
    var action = $('select.get').parent().attr('action');
    var target = $('select.get').data('target');
    $('#'+target).load(action, $('select.get').parent().serializeArray());     
});

改变select.getthis Ready 函数内部不会导致任何表单加载。

使用change()尽管有点重复,但两种形式都可以完美地工作

$('select.get').change(function() {        
  var action = $(this).parent().attr('action');  
  var target = $(this).data('target');  
  $('#'+target).load(action, $(this).parent().serializeArray());      
});

最佳答案

只需在页面加载时触发更改事件?

$('select.get').change(function() {        
  var action = $(this).parent().attr('action');  
  var target = $(this).data('target');  
  $('#'+target).load(action, $(this).parent().serializeArray());      
}).change(); //trigger it on pageload as well ...

关于jQuery Ready() 问题 - $(this) 不可用且代码仅适用于一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14820663/

相关文章:

Jquery 处理从 ajax 附加值

javascript - jQuery:绑定(bind)事件 - 在 $(document).ready 或 html DOM 事件处理程序中?

javascript - html页面加载后加载javascript

javascript - 在 Angular 2 组件函数中将 jQuery 代码包装在 `document.ready()` 中是否有意义

jquery - 如何将 childBrowser 用于 phonegap 应用程序

javascript - jQuery 解析 RSS 和命名空间元素,如 <content :encoded>

jquery - 在就绪处理程序中使用字符串调用函数...不起作用

javascript - 在大型网站上管理 document.ready 事件

javascript - jQuery animatescrollTop 不会在任何浏览器上滚动

javascript - 什么是 jQuery thickbox 的最佳替代品