Не удается передать событие при использовании JQuery Click () - PullRequest
0 голосов
/ 29 августа 2018

Я не могу получить данные из event.data при использовании функции щелчка ниже. Если я добавлю «событие» в клик (smedata, function (event) {}), оно не сработает. Если я удаляю событие, оно срабатывает. Я делал это сто раз в прошлом, но по какой-то причине в этот раз это не сработало. Все, что я могу думать, это то, что этот код генерируется во время обратного вызова после закрытия диалогового окна, и это как-то мешает. Цени любую помощь.

//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();

  });
    		     
}

Ответы [ 2 ]

0 голосов
/ 10 сентября 2018

Весь мой код был верным. Проблема связана с SharePoint SP.UI.Dialogue.js. Все javascript и jQuery были правильными, но они работали в окне диалога. В основном на одной странице работают две отдельные страницы. Когда диалоговое окно закрывается после обратного вызова, консоль в Internet Explorer 11 ломается и не понимает, что следует сосредоточиться на родительской странице, а не на дочерней. Поэтому он не получает консольные журналы, как это должно быть. Закрытие инструментов разработчика и повторное открытие (F12) позволяет окну правильно переориентировать родителя.

0 голосов
/ 29 августа 2018

Не похоже, что вы правильно ссылаетесь на $(smeIDJQ). Также используйте .on вместо этого. Нравится $('#smeIDJQ').on('click', function(){};

...