2012-04-17 3 views
0

я использую jquery version 1.3.2. Я сталкиваются странный вопрос. В IE9 мое приложение работает нормально, но в IE8 это functon не работаетжить («щелчок» не работает, но .click (workig в IE 8

jQuery('.mutulafriends').live('click',function(){}); 

я просто поставить предупреждение внутри этой функции, но не работает, кажется, что это не идентифицирующий click. в консоли я вижу ошибку

SCRIPT87: Invalid argument. 
jquery-1.3.2.min.js, line 12 character 12949 

, когда я использую эту функцию с предупреждением

jQuery('.mutulafriends').click(function(){ 
    alert(""); 
}); 

работает отлично. но ошибка также отображается:

SCRIPT87: Invalid argument. 
jquery-1.3.2.min.js, line 12 character 12949 

кажется, что ошибка не влияет на click. Я знаю, что для jQuery версии 1.3.2 live('change' не работает, но почему live('clck' не работает? любые идеи, пожалуйста, помогите. заранее спасибо. это мой HTML. это может быть слишком долго, но я думаю, что это может помочь.

 <div class="component-list-wrapper"> 

     <?php if(is_array($result) && count(array_filter($result)) > 0) { 
      foreach($result as $record) { 
       ?> 

      <div class="eliment-component-list eliment-divider"> 
       <div class="user-profile-img-holder"> 
        <img alt="Profile image" 
         src=<?php if(isset($record['ProfileImg'])){echo $img_url.md5($record['ProfileID'])."/default/".$record['ProfileImg'];}else{echo $this->config->item('ivory_img_path')."/thumb-img.png";} ?> /> 
       </div> 
       <div class="user-des-container"> 
        <div class="user-des-left"> 
         <div class="namecontainer"> 
          <label class="darkcolour-large"><?php echo $record['FirstName']; if($record['PrivacySettingFriend']){echo " ".$record['LastName'];} ?></label> <label 
           class="lblsub"><?php echo $record['StateName'].', '.$record['CityName']; ?></label> 
         </div> 
         <div class="friendcontainer"> 
          <label img_url="<?php echo $img_url; ?>" req_type="recieved" friend_id="<?php echo $record['ProfileID']; ?>" class="darkcolour margine-top20 mutulafriends btndialogMutualFriends"><?php if(!isset($record['CommonFriendCount'])){echo "0 Friends in Common";}else if($record['CommonFriendCount']!=1){echo $record['CommonFriendCount']." Friends in Common";}else{echo $record['CommonFriendCount']." Friend in Common";} ?></label> 
         </div> 
        </div> 
        <div class="user-des-right"> 
         <div class="user-des-right-inner"> 
          <img width="13" height="13" class="btnDialogDelete request_del_dialog_open_but" req_type="recieved" prof_friend_id="<?php echo $record['ProfileFriendID']; ?>" 
           src="<?php echo $this->config->item('ivory_img_path'); ?>close_button.png" 
           alt="Profile image"> 
          <div class="button-wrapper"> 
           <input type="button" class="btnRequest btn-white-small request_accept_dialog_open_but" name="" prof_friend_id="<?php echo $record['ProfileFriendID']; ?>" 
            tabindex="123456" value="Accept">          
          </div> 
          <div class="button-wrapper"> 
           <input type="button" class="btnDialogAssign btn-grey-small request_decline_dialog_open_but" prof_friend_id="<?php echo $record['ProfileFriendID']; ?>" 
            name="" tabindex="123456" value="Decline">         
          </div> 
         </div> 
        </div> 
       </div> 
      </div> 

      <?php } 
     } else {?> 

      <div class="no-records-found">No records found</div> 

      <?php } ?> 

     </div> 
+1

'.live()' вместе с 'click' отлично работает с jQuery 1.3.2: http://jsfiddle.net/MgfLr/. Должно быть что-то еще, что считается« недопустимым аргументом ». Что именно находится в строке 12, на которую указывает ошибка. – m90

+0

Просто из любопытства, почему вы используете 1.3.2 вместо последнего 1.7.1? –

ответ

0

оленья кожа вашего класса 'mutulafriends' требуется динамическое связывание, так что 'нажмите кнопку' достаточно я думаю

Заверните его в

методом
$(document).ready(function(){ 
     jQuery('.mutulafriends').click(function(){ 
      alert('And update your JQuery to the latest one :=)'); 

     }); 
}); 

// Делегат

$(document).ready(function(){ 
      jQuery('div.component-list-wrapper').delegate('.mutulafriends','click',function(){ 
       alert('And update your JQuery to the latest one :=)'); 

      }); 
    }); 

Живые или делегированные методы используются только для latebindings, что означает элементы, которые генерируются после загрузки страницы, Eg gen с помощью вызова ajax

+0

Нет, на самом деле это имеет функцию разбиения на страницы. поэтому элементы создаются динамически. а также это внутри $ (document) .ready (function(). Моя проблема в том, почему live ('click' не работает ??? –

+1

Попробуйте обновить JQuery ... – coolguy

+1

Или используйте функцию делегата .. обновите мою ответ – coolguy

1

попробуйте использовать последний jQuery. Это может решить ваши проблемы. В этой версии могут быть некоторые ошибки/недостатки, которые могли быть рассмотрены в более поздних версиях jQuery.

Текущая версия с этим ответом - 1.7.2 и .live() has been deprecated, а его замена - .on().

Я полагаю, что полагается исключительно на предупреждение об ошибке конца, которое заканчивается в библиотеке jQuery. Это не очень информативно. проверьте трассировки стека, чтобы проверить, где могут возникнуть ваши ошибки. попробуйте добавить точки останова, чтобы узнать, какие значения находятся в определенной части исполнения. У меня есть уверенность в jQuery, и возможно, вы указали некоторые неправильные значения. проверьте также опечатки.

Смежные вопросы