2013-10-29 125 views
-1

我想运行下面的代码和console.log()给我不明身份为什么?jQuery功能不工作 - 功能不明

功能:

function postTitleCheck(){ 

     $('.postForm').on('blur', '#post_title', function(e){ 

      console.log(urlCheck()); 
}); 
} 


function urlCheck() { 

$(".postForm").on('blur', '#post_url_link', function (e) { 

     var url  = base_url + 'admin/page/urlCheck'; 

     var data = { 
      moviesparx_website_id : $('#post_url_link').data("id"), 
      post_title   : $('#post_url_link').val() 
     }; 

     e.preventDefault(); 

     e.stopImmediatePropagation(); 

     $.ajax({ 
      url:url, 
      data:data , 

      type: 'POST', 
      success: function (resp) { 

       if(resp == '') 
       { 

       }else{ 
        alert(resp); 
       } 
      }, 
      error: function (resp) { 
       console.log(data); 
      } 
     }); 

    }); 
} 

回答

0

适用这一点,因为你不能传递函数中的事件动作就可以触发事件,但不能作为参数传递

$('.postForm').on('blur', '#post_title', function(e){ 

    $(".postForm #post_url_link").blur(); 
    //or 
    $(".postForm #post_url_link").trigger('blur'); 

}); 

$(".postForm").on('blur', '#post_url_link', function (e) { 

     var url  = base_url + 'admin/page/urlCheck'; 

     var data = { 
      moviesparx_website_id : $('#post_url_link').data("id"), 
      post_title   : $('#post_url_link').val() 
     }; 

     e.preventDefault(); 

     e.stopImmediatePropagation(); 

     $.ajax({ 
      url:url, 
      data:data , 

      type: 'POST', 
      success: function (resp) { 

       if(resp == '') 
       { 

       }else{ 
        alert(resp); 
       } 
      }, 
      error: function (resp) { 
       console.log(data); 
      } 
     }); 

    }); 
0

console.log()不是标准的JavaScript目的。它由浏览器自行定义(即,Chrome开发人员工具或Firefox Firebug)。所以即使在IE中你也会得到未定义的。对于IE浏览器的兼容性,可以采取利用这个答案:

What happened to console.log in IE8?

0

urlCheck没有返回值 - 它只是调用另一个函数!所以,JavaScript说它是不确定的。这就像你有这样的:

function foo(bar) { 
    // no code here 
} 

console.log(foo('bar'));