我正在尝试创建一个比较叠加层,显示用户在“添加到比较”链接时选择的项目。(例如,当您点击添加比较时,flipkart中的一个显示在顶部)。这是我的代码:
/show overlay when one checkbox is checked and add its name/image to the empty space
$('.comparison').click(function(e){
var clgId = $(this).parentsUntil('.individual-clg-container').find('.image-header').text();
e.preventDefault();
var clg = $("<li></li>")
clg.text(clgId);
var removeLink = $("<a href=''>(Remove)</a>");
clg.append(removeLink)
$('.comparison-colleges').append(clg);
$('.add-to-compare-overlay').show("slide", { direction: "up" }, 300);
});
的Javascript
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent iSecond=new Intent(getActivity(),ShowImage.class);
iSecond.putExtra("image_path",image_path);
startActivity(iSecond);
}
});
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getActivity(), "Launching Camera", Toast.LENGTH_SHORT).show();
Intent imageIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File imagesFolder = new File(Environment.getExternalStorageDirectory(), "MyImages");
imagesFolder.mkdirs();
File image = new File(imagesFolder, "image_001.jpg");
fileUri = Uri.fromFile(image);
imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
startActivityForResult(imageIntent, REQUEST_CODE_FROM_CAMERA);
}
});
return view;
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE_FROM_CAMERA && resultCode == Activity.RESULT_OK && data != null) {
Uri selectedImage = data.getData();
Intent send = new Intent(getActivity(), ShowImage.class);
send.putExtra("pictureUri", selectedImage.toString());
startActivity(send);
}
}
我希望将包含类'image-header'的div中的文本分配给变量clgId。我面对我的代码的问题是它添加了包含类'image-header'的所有div的文本。例如,我希望在单击添加时分配值text1以将div与id text1进行比较。但它会将“text1 text2 text3”分配给clgId。
请帮忙
答案 0 :(得分:1)
我已经创建了一个JSFiddle,我认为是你想要的功能(我在clgId
变量的脚本中包含了一个控制台日志输出):
我将parentsUntil
函数替换为closest
函数(并替换了individual-clg-container
类选择器):
var clgId = $(e.target).closest('.individual-college-container').find('.image-header').text();
并更新了您的点击处理程序:
$('.comparison').on( "click", function(e) {
为了在将来获得更快的回复,发布到目前为止您所拥有的JSFiddle使其他人更容易提供帮助:)
答案 1 :(得分:0)
它正在添加所有这些因为
var clgId = $(this).parentsUntil('.individual-clg-container').find('.image-header').text();
应该是
var clgId = $(this).parentsUntil('.individual-college-container').find('.image-header').text();