【问题标题】:jquery onchange not work after a first call ajax第一次调用ajax后jquery onchange不起作用
【发布时间】:2014-05-26 10:35:35
【问题描述】:

我尝试从框架传递到 div 在第一次调用 ajax jquery 后更改不起作用 然后在框架中它正在工作

单击菜单时,我第一次加载我的页面。 我选择一个人物 刷新没问题

但是当我尝试修改 XPS 之后,事件 onchange 不起作用

<script type="text/javascript" src="{$URL_BASE}js/prototype.js"></script>
<script type="text/javascript">var URL_BASE='{$URL_BASE}'</script>
<script type="text/javascript" src="{$URL_BASE}js/jquery.min.js"></script>
<script type="text/javascript" src="{$URL_BASE}page.js"></script>
<script type="text/javascript" src="{$URL_BASE}menu_mj.js"></script>
</head>
<body>
<div id="frame-menu">
 <a href="#" onclick="return menu_displaycentre('frame-centre','{$URL_BASE}page.php');
  ma page
 </a>
</div>
<div id="frame-centre">
</div>

提取页面

    <script type="text/javascript" src="{$URL_BASE}js/prototype.js"></script>
<script type="text/javascript" src="{$URL_BASE}js/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="page.js"></script>
</head>
<body>
<form method="post" id="recherche" name="recherche" action="">
   <input type="hidden" name="ACT" value="rech_perso" />
   RECHERCHE D'UN COMPTE<br />
   Id,Login, email, ip ou nom de personnage : (2 lettres min)<br />
   <input type="text" name="query" size="30" />
   <input type="submit" value="RECHERCHER" onclick="PJ_Recherche()" />
</form>
 <input type="text" size="10" name="XPS" value="{$PJ.XPS}" id="XPS"/>

perso.js

    $.noConflict();
jQuery(document).ready(function($) {
$(document).ready(function () {
$("#XPS").change(function () {
//$('#XPS').live('onchange',function () {
  alert('titi');
   var champsid = ($(this).attr('id'))
   var champsvaleur = $('input[id=XPS]').val()
   var idpj = ($("#idpj").val());
   $.ajax({
   type: "POST",
   url: "updatebdd.php",
   data: 'id='+idpj+'&champ='+champsid+'&value='+ champsvaleur,
   cache: false,
   success: function(html) { // If is everything ok
   }
   });
   });
   });
});
// Code that uses other library's $ can follow here.
function PJ_Recherche() {
   var url=URL_BASE+'persos.php';
   new Ajax.Updater(
      'frame-centre', 
        url,
        {
        method : 'post', 
        parameters: Form.serialize('recherche')
        }
    );
parent.document.getElementById('frame-centre').innerHTML ='Please Wait...';
return false;
}

...

我从 3 天起就阻止了这个,有些人有答案?

【问题讨论】:

标签: jquery ajax onchange


【解决方案1】:

你必须使用delegated event,因为元素在DOM加载后被修改:

$(document).on('click','#XPS',function () {

................
...............
.............

});

【讨论】:

  • 我有同样的问题,我有一个更新文本框的 ajax 调用。我试过了,但无法触发该文本框的更改事件。 $("#txtInput").on("change", "#txtInput", function () { myfunction() }); 有什么建议吗?
  • 在第一个选择器中放入 $(document)
猜你喜欢
  • 2013-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-05
相关资源
最近更新 更多