-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

您正在考虑“onload”事件。但这只能用于“body”元素。即使这样有效,您也必须像这样“... =“removeImage()”来编写它。

SO上有类似的问题,这个解释了如何在“div”上放置“onload”。

于 2012-04-16T12:34:19.480 回答
1

如果你使用load你的,div你就不能document.ready在脚本上使用。因为如果您这样做,您所说的是:“在 div 加载事件上注册一个侦听器,该侦听器将在页面准备好时执行”。但是......该事件在注册监听器之前被触发。

你也不能onload在 a 上使用div,只是在body.

简而言之,这样做:

$(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 回答