按钮无法识别功能,即点击时没有任何反应

时间:2014-07-02 10:32:27

标签: javascript php html button

如果你可以帮帮我的话,我会通过Paypal给你买啤酒!我已经坚持这个问题好几个小时了,请听我说。

我在我的网站上使用实时搜索。当访问者在index.php页面上的表单中键入内容时,表单会给出结果,或者如果在数据库中找不到任何内容,它会通过echo函数在表单下的index.php页面上输出一个按钮。 (运行搜索表单的页面是search.php)。

这意味着此按钮(在id #Ne下)不在index.php页面HMTL上,而是通过search.php回显到索引页面。

我要做的是用其中一个按钮隐藏搜索表单。搜索表单位于id #iskanje下的index.php页面上。

这是我正在使用的javascript。如果我把这个脚本放在index.php页面上没有任何反应,如果我把它放在search.php页面上,它会崩溃整个搜索表单。

<script>
       $( "#Ne" ).click(function() {
      $( "#iskanje" ).hide( "slow" );
    });

</script>

这是index.php页面上的HTML:

<div id="iskanje" class="arcus-content divider-2">

    <div id="main">
    <div class="row services-i ">

        <!-- Naslov -->
        <div class="icon"></div>
        <h5 class="title">Za katero vrsto storitev bi radi oddali vaše povpraševanje?</h5>

        <!-- Input -->
        <input type="text" id="search" autocomplete="off">

        <!-- Rezultati -->
        <h4 id="results-text"> <b id="search-string"></b></h4>
        <ul id="results"></ul>
    </div>

    </div>
</div>

这是search.php页面的一些摘录:

$text = '<button id="Ne"><i class="icon-white"></i>Želim oddati povpraševanje</button>';

这是整个回声,如果找不到结果。

echo($output . " " . $text);

我希望我已经足够清楚了。如果你可以帮我解决这个问题,我甚至可以提供源文件。

我也试过

$( document ).ready(function() {
   $( "#Ne" ).click(function() {
      $( "#iskanje" ).hide( "slow" );
   });

});

谢谢!

4 个答案:

答案 0 :(得分:0)

在运行JavaScript之前或之后是否添加了#Ne按钮?如果当浏览器将单击处理程序分配给按钮时按钮不“存在”,则它将不起作用。

但是,您可以将单击处理程序绑定到按钮的父级,如下所示:

$("body").on("click", "#Ne", function() {
  $( "#iskanje" ).hide( "slow" );
});

这说“将点击处理程序绑定到正文,每次点击正文时,检查它是否是ID为”Ne“的按钮。

我不知道#Ne的直接父母,但无论如何都比body

更合适

答案 1 :(得分:0)

当您正在动态附加按钮时,DOM上的按钮不可用。

使用 event-delegation - on()

$(document).on("click","#Ne",function() {
    $( "#iskanje" ).hide( "slow" );
});

答案 2 :(得分:0)

尝试

$( "body" ).on('click', '#Ne', function() {
  $( "#iskanje" ).hide( "slow" );

});

我猜jquery没有找到按钮,因为它是在onload之后插入的......

答案 3 :(得分:0)

首先你必须使用$(document).ready来等待DOM加载 第二件事是使用jquery post还是get方法? 如果您的答案是肯定的,那么您需要使用.done()方法

$.post(url,{argumets},function(data){
   //data is what is retrieved from the search.php
   // could be empty result in our case we are sending button back 
   // or displaying results in case we have some results

}).done(function(){

//put here the button code 
// this should work for you 
});