-2

私はそのようなJavaScriptを持っています

$.fn.hasBorder = function() {   
  if ((this.outerWidth() - this.innerWidth() > 0) ||  (this.outerHeight() - this.innerHeight() > 0)){
        return true;
    }
    else{
        return false;
    }
};

function removeImage(){
$(document).ready(function() {
  var selectedImgsArr = [];
   $("img").click(function() {

      if($(this).hasBorder()) {
          $(this).css("border", "");
          //you can remove the id from array if you need to
      }
      else {
         $(this).css("border", "1 px solid red");
         selectedImgsArr.push($(this).attr("id")); //something like this 
         alert(selectedImgsArr);
 }
   });

このスクリプトを自分のページにロードします。このスクリプトを使用するには

私はこれを書いた

div load="removeImage">

何が機能しないのですか?

4

2 に答える 2

1

あなたは「オンロード」イベントについて考えています。ただし、これは「body」要素でのみ使用できます。そして、それがうまくいったとしても、この「... = "removeImage()」のように書く必要があります。

SOについても同様の質問があります。これは、「div」に「onload」を配置する方法を説明しています。

于 2012-04-16T12:34:19.480 に答える
1

loadで使用する場合、スクリプトでdivは使用できません。document.readyなぜなら、そのようにすると、「div loadイベントで、ページの準備ができたときに実行されるリスナーを登録する」ということになるからです。しかし…そのイベントはリスナーを登録する前に発生しました。

また、で使用onloadすることはできません。divbody

要するに、このようにしてください:

$(document).ready(function() {
  var selectedImgsArr = [];
   $("img").click(function() {
      if($(this).hasBorder()) {
          $(this).css("border", "");
          //you can remove the id from array if you need to
      } else {
         $(this).css("border", "1 px solid red");
         selectedImgsArr.push($(this).attr("id")); //something like this 
         alert(selectedImgsArr);
      }
  });
});

そしてload="removeImage"、HTMLからを削除します。

于 2012-04-16T12:37:07.067 に答える