2010-09-23 59 views
0
$(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 ...有没有更好的办法或者是我的语法关为什么这jQuery代码片段失败

+0

如果你说它失败/不起作用,你应该告诉**它如何失败。例如。语法错误? – LarsH 2010-09-23 16:14:01

回答

2

我认为,你想要的是这样的:

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

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

请注意,我重新安排了代码,以便#venue_details仅在之后显示内容被加载。

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

你正在喂食一个布尔值,你不需要喂什么东西到toggle

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

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