javascript或jquery的错误行为

时间:2015-12-05 23:08:17

标签: javascript jquery

我想在我的身体区域添加一段JavaScript(jquery)代码。假设代码是

$(".count_input").on("change",function(){
    alert("hi");
});

但它并没有说出来。当我对输入进行更改时,我希望此代码能够提醒我。

代码语法和算法都是正确的,因为当我用chrome控制台植入它时它会起作用;

我必须补充说我的脚本标记是这样的:

<script>
    $(document).ready(function() {
            /**********************
            this part doesn't work
            **********************/
            $(".count_input").on("change",function(){
                alert("hi");
            });
            /*************************************************************/
            /**************
            this part works
            **************/
        $.get("../files/cart.php",{action:'main_cart'},function(data) {
            data = data.split("dbseperatordb");
            $(".cart_count").html("");
            $(".main_cart_html").html("");
            $("#total_price").html("0");
            var main_cart_html = data[0];
            var total_price = data[1];
            $(".main_cart_html").html(main_cart_html);
            $(".total_price").html(total_price);

        });
        /****************************************************************/
    })
</script>

这是HTML

<div class="item">
    <div class="cart_img pull-left width-100 padding-10 text-left">
        <img src="../products/h1/images/1.jpg" alt="" width="80">
    </div>
    <a href="../pages/single-item.php?id=1" class="product_name">
        <span>عسل</span>
        <small>&#65279;کمی توضیحات<br>معمولاً طراحان گرافیک برای صفحه&zwnj;آرایی�</small>
    </a>
    <a href="#" class="remove_item">
        <i class="fa fa-times"></i>
    </a>
    <div class="total_price">342000</div>
    <div class="qty">
    <input type="number" value="4" class="count_input" id="1input_count" maxlength="3" max="999" min="1">
 × 90000 ريال</div>
    <div class="clearfix">
    </div>
</div>

2 个答案:

答案 0 :(得分:2)

  

包含那些输入的一些html元素由$ .get()代码

收集

这就是您的代码所做的事情:

  1. 将事件处理程序绑定到文档中当前的所有.count_input元素
  2. 发出HTTP请求
  3. 通过对该HTTP请求的响应,添加一些.count_input元素
  4. 由于您在步骤3中添加的元素在步骤1中不存在,因此它们永远不会绑定到它们的事件处理程序。

    将绑定事件处理程序的代码移动到传递给$.get的函数的末尾

答案 1 :(得分:0)

  

我希望此代码在我输入内容时提醒我。

在用户提交输入元素值之前,不会触发change事件。用户必须首先输入新值,然后通过Tab键到另一个表单元素或单击输入元素外部来模糊输入元素,以实际提交更改。直到那时change事件才会触发。

您可以使用input事件,当输入元素的值发生更改时,会同步触发该事件。

旧版浏览器(IE&lt; 9)不支持input事件。要支持那些,您可能需要考虑倾听keyup / keydown