jQuery $(' body')。on with参数

时间:2018-02-05 17:28:30

标签: javascript jquery parameters

我有功能

    $('body').on('click', '.urlsend', function ()
    {
         console.log("this.parameter");
    }

和" .urlsend"的所有元素有一些参数,我需要传递给函数。 HTML看起来像这样:

<div id="canvas">

</div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript">
function loadImgs(){

<!--somecode-->

  function gotData(arr){
    var element="";
    for(var i = 0;i<arr.data.length;i++)
    {
        var img = arr.data[i].images.original.url;
        element += '<img src="'+img+'" class="urlsend" data-url="'+img+'">';

    }
    $('#canvas').html(element);
  }

}
</script>

3 个答案:

答案 0 :(得分:1)

您可以使用.attr获取HTML元素的参数或属性。

$(document).ready(function() {
  $('body').on('click', '.urlsend', function() {
    console.log($(this).attr("parameter"));
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="urlsend" parameter="1"> urlsend DIV 1</div>
<div class="urlsend" parameter="2"> urlsend DIV 2</div>
<div class="urlsend" parameter="3"> urlsend DIV 3</div>
<div class="urlsend" parameter="4"> urlsend DIV 4</div>

Doc:http://api.jquery.com/attr/

答案 1 :(得分:0)

回调中的

this将是与该事件相关的特定.urlsend元素,因此您可以从this访问该信息。

例如,如果&#34;参数&#34;是data-info属性:

console.log(this.getAttribute("data-info"));

或更多jQuery:

console.log($(this).attr("data-info"));

(请勿使用.data(...),除非您需要其提供的功能,有关详细信息,请参阅this answer。)

答案 2 :(得分:0)

试试这个

  <script>
     $(function(){
       $('body').on('click' , ' .urlsend' , function(){
    var url=$(this).data('url');
   var user=$(this).data('user');
alert(url);
alert(user);
  });
  });
</script>    

<body>
<button class="urlsend" data-url="google.com" data-user="kate">click</button>
</body>

希望这能帮到你