为什么这个jquery代码片段失败了

时间:2010-09-23 16:02:00

标签: jquery

$(if($('#errorExplanation').length > 0)){
  $('#venue_details').toggle($('#errorExplanation').length > 0); //if there is at least one errorExplanation element on the page, 
  $("#venue_details").load("/load_events/"+ escape($('#request_artist').val()), successCallback );
    }

好像我正在重复自己的代码。我基本上需要显示#venue_details并在#errorExplanation'时运行负载。)。长度> 0 ...有更好的方法或我的语法关闭

3 个答案:

答案 0 :(得分:2)

我想,你想要的是这个:

if($('#errorExplanation').length > 0){
    var url = "/load_events/"+ escape($('#request_artist').val());
    $("#venue_details").load(url, function() {
        $(this).show();
        successCallback(); );    
    });
}

不确定要使用$(if(...))完成什么,但toggle()不会将布尔值作为参数。

请注意,我重新安排了代码,以便{<1}}仅在加载内容后显示

答案 1 :(得分:1)

$(function(){
     if($('#errorExplanation').length >0){

         $("#venue_details").load("/load_events/"+ escape($('#request_artist').val()), function(){
             successCallback();
             $(this).fadeIn();
         );
     }
});

答案 2 :(得分:0)

  $('#venue_details').toggle($('#errorExplanation').length > 0); //if there is at least one errorExplanation element on the page, 

您正在提供布尔值,您无需向toggle提供任何内容。