使用JQuery时无法传递事件Click()

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用JQuery时无法传递事件Click()相关的知识,希望对你有一定的参考价值。

使用下面的点击功能时,我无法从event.data获取数据。如果我在点击中放入“事件”(smedata,函数(事件){})则不会触发。如果我删除事件它会触发。我过去已经完成了这一百次,但无论出于何种原因,这次都不起作用。我能想到的是,这个代码是在关闭对话窗口的回调过程中生成的,这是一些干扰。感谢任何帮助。

//This is a callback function in a library that gets called after a dialogue 
//window from SharePoint SP.UI.Dialogue gets closed.

OESme.prototype.CloseCallback = function(result, target){
  console.log("callback");

  try{
    var targetArray = target.split(";#");
  }
  catch(e){

  }
  
  //object to be passed to click event
  var smedata = {
    smejson: target,
    id: targetArray[0],
    title: targetArray[1],
    rank: targetArray[2],
    firstname: targetArray[3],
    lastname: targetArray[4]
  }

  var smeID = "smedata" + smedata.id;
  var smeIDJQ = "#" + "smedata" + smedata.id;

  $("#SMEAddedBox").append(
    '<div class="smeitem">' + 
      '<span id="' + smeID + '">x</span>' + smedata.title + 
    '</div>'
  );


   //******************* 		
  //When clicking the x it is suppose to remove itself
  //If event is a parameter in the function, it won't fire, if event is removed it fires, but I can't use the object I am trying to pass
  //********************

  $(smeIDJQ).click(smedata, function(event){
      console.log(event.data);
      $(this).parent().remove();

  });
    		     
}
答案

看起来你并没有正确地引用$(smeIDJQ)。另外,请改用.on。像$('#smeIDJQ').on('click', function(){};

另一答案

我的所有代码都是正确的。该问题与SharePoint SP.UI.Dialogue.js有关。所有的javascript和jQuery都是正确的,但它在Dialogue窗口中运行。基本上,在一个页面上运行两个单独的页面。当回调后对话窗口关闭时,Internet Explorer 11中的控制台中断并且没有意识到它将集中在父页面而不是子页面上。所以它不会像它应该那样接收控制台日志。关闭开发人员工具并重新打开(F12)允许窗口正确地重新聚焦父级。

以上是关于使用JQuery时无法传递事件Click()的主要内容,如果未能解决你的问题,请参考以下文章

jquery鼠标点击事件是啥?

怎么让click事件在指定时间内只响应一次,jquery。

jQuery-事件

为啥我的 jQuery on click 事件不起作用?

jQuery事件处理

jquery为啥触发多次click事件