Uncaught TypeError: $ (...). Live не является функцией - PullRequest
0 голосов
/ 15 октября 2019

Я использую jquery 1.10.2, и у меня Uncaught TypeError: $ (...). Live не является функцией . Я использую Codeigniter для разработки с пироком. Ниже я написал код: -

public static function close()
    {
        return '</form><script>$(document).ready(function(){$("a.close").live("click", function(e){ e.preventDefault();$(this).fadeTo(200, 0);$(this).parent().fadeTo(200, 0);$(this).parent().slideUp(400, function(){$(this).remove()})})});</script>';
    }

Я новичок в этом. Любая помощь будет оценена. заранее спасибо.

Редактировать: -

Из функции ниже я вызываю функцию закрытия. пожалуйста, проверьте следующий код: -

public static function form($form_name, $output_array=false)
    {

        if ($output_array)
        {
            $return            = self::get_fields_arrays($form_name);
            $return['header']  = self::open($form_name) . $return['header'];
            $return['footer'] .= self::close();
        } else {
            $return  = self::open($form_name);
            $return .= self::get_fields($form_name);
            $return .= self::close();
        }

        self::$_ci->load->library('jquery_validation');
        if ($valid = self::get_validation_array($form_name))
        {
            self::$_ci->jquery_validation->set_rules($valid);
            if (is_array($return))
            {
                $return['footer'] .= self::$_ci->jquery_validation->run('#frm-'.$form_name);
            }
            else
            {
                $return .= self::$_ci->jquery_validation->run('#frm-'.$form_name);
            }
        }

        return $return;
    }

Из этого тега он вызывается.

<li class="single current parent"><a href="http://php-pc/adina225.dev/hunter-valley-wine-club/wine-club-application">Wine Club Application</a></li>

Джоги Мехул, пожалуйста, дайте мне знать, если вам нужна дополнительная помощь.

Я отредактировал функцию закрытия, как предложил Джоги. Вот так это выглядит ниже: -

public static function close()
    {
        return '</form><script>$(document).ready(function(){$("a.close").on("click", function(e){ e.preventDefault();$(this).fadeTo(200, 0);$(this).parent().fadeTo(200, 0);$(this).parent().slideUp(400, function(){$(this).remove()})})});</script>';
    }

теперь у меня появляется следующая ошибка: - Uncaught ReferenceError: пироформы не определены

private function build_script($form_name) 
    {
        $script = '<script>$(document).ready(function() { pyroforms.init($("'.$form_name.'"), {submitHandler: function(form) { pyroforms.submit($("'.$form_name.'"), form)}, rules: %s,messages: %s});})</script>';
        return sprintf($script, $this->rules, ($this->messages ? $this->messages : '{}'));
    }

Ответы [ 2 ]

1 голос
/ 15 октября 2019

Метод live () устарел в jQuery версии 1.7 и удален в версии 1.9. Вместо этого используйте метод on (). Пожалуйста, обратитесь https://www.w3schools.com/jquery/event_live.asp

public static function close()
    {
        return '</form><script>$(document).ready(function(){$("a.close").on("click", function(e){ e.preventDefault();$(this).fadeTo(200, 0);$(this).parent().fadeTo(200, 0);$(this).parent().slideUp(400, function(){$(this).remove()})})});</script>';
    }
0 голосов
/ 15 октября 2019

, поэтому следующий код решил мою проблему.

/**
    * Build jQuery validationcode
    *
    * @access private
    * @param  string
    * @return string
    */
    private function build_script($form_name) 
    {
        $script = '<script>$(document).ready(function() { function pyroforms(){} pyroforms.init = function(){}; new pyroforms(); pyroforms.init($("'.$form_name.'"), {submitHandler: function(form) { pyroforms.submit($("'.$form_name.'"), form)}, rules: %s,messages: %s});})</script>';
        return sprintf($script, $this->rules, ($this->messages ? $this->messages : '{}'));
    }
...